Matlab sprand()在Python中的等价性?

2024-10-01 04:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个Matlab代码片段转换成Python代码片段。但是,我不太确定如何正确实现sprand()函数。在

这是Matlab代码如何使用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);

这就是我在Python中实现上述逻辑的方法:

^{pr2}$

这似乎管用,但我对此不太确定。有什么意见或建议吗?在


Tags: 方法函数代码anforiscellinteger
1条回答
网友
1楼 · 发布于 2024-10-01 04:54:39

我认为,对于稀疏数组a,以下应该是一个相对快速的方法:

import scipy.sparse as sparse
import numpy as np
sparse.coo_matrix((np.random.rand(A.nnz),A.nonzero()),shape=A.shape)

这将构造一个COO格式的稀疏矩阵:它使用A.nonzero()作为坐标,A.nnz(a中非零条目的数目)来查找要生成的随机数的数量。在


不过,我想知道这是否是对scipy.sparse.rand函数的有用补充。在

相关问题 更多 >