jeudi 7 mai 2015

The equivalence of Matlab sprand() in Python?

I am trying to translate a Matlab code snippet into a Python one. However, I am not very sure how to correctly implement the sprand() function.

This is how the Matlab code use sprand():

% n_z is an integer, n_dw is a matrix
n_p_z_dw = cell(n_z, 1); % n(d,w) * p(z|d,w)
for z = 1:n_z
  n_p_z_dw{z} = sprand(n_dw);

And this is how I implement the above logic in Python:

n_p_z_dw = [None]*n_z  # n(d,w) * p(z|d,w)
density = np.count_nonzero(n_dw)/float(n_dw.size)
for i in range(0, n_z):
    n_p_z_dw[i] = scipy.sparse.rand(n_d, n_w, density=density)

It seems to work, but I am not very sure about this. Any comment or suggestion?




Aucun commentaire:

Enregistrer un commentaire