import numpy as np
import scipy.sparse as scsp
from scipy.sparse import csr_matrix,lil_matrix
# create an empty numpy matrix
wi=np.empty((num_clusters*num_cluster_neurons, input))
for i in range(num_clusters*num_cluster_neurons):
temp_neuron_prob=dic_cluster_prob[dic_neuron_cluster[i]]
#create 1*input shape sparse matrix according to probability
lil=lil_matrix(scsp.rand(1, input, temp_neuron_prob))
#want to assign the 1*input sparse matrix to one slice of the numpy matrix
wi[i,:]=lil[:]
我试图将一个lil峎矩阵的值赋给numpy数组的一个片段,但是它给出了一个错误“用一个序列设置一个数组元素”
我想知道为什么会出现这样的错误,因为它们的大小相同,而且我如何才能提高效率,因为numpy数组比稀疏矩阵(lil_matrix)快。在
我想使用numpy数组来获得由稀疏矩阵创建的值
稀疏矩阵不是数组子类(比如
np.matrix
),也不一定像一个数组子类(尽管在很多方面它确实尝试过)。在但如果我首先将稀疏矩阵转换为数组或矩阵,则赋值有效:
^{pr2}$一般来说,稀疏矩阵不能插入
numpy
代码中。例外情况是,numpy
代码将任务委托给对象自己的方法。在看起来你正在尝试生成类似于:
纯粹的稀疏等价物可能是:
但是考虑到
sparse.vstack
使用稀疏bmat
将矩阵连接成一个新的矩阵,bmat
结合了组件的coo
属性,密集数组累加方法可能会更快。在相关问题 更多 >
编程相关推荐