Python scipy.sparse矩阵上的逐点运算
是否可以对Python scipy.sparse矩阵上的逐点运算,python,scipy,sparse-matrix,Python,Scipy,Sparse Matrix,是否可以对scipy.sparse.lil_矩阵或其他稀疏矩阵格式中的所有元素应用例如numpy.exp或类似的逐点运算符 import numpy from scipy.sparse import lil_matrix x = numpy.ones((10,10)) y = numpy.exp(x) x = lil_matrix(numpy.ones((10,10))) # y = ???? numpy.exp(x)或scipy.exp(x)产生一个AttributeError,而num
scipy.sparse.lil_矩阵
或其他稀疏矩阵格式中的所有元素应用例如numpy.exp
或类似的逐点运算符
import numpy
from scipy.sparse import lil_matrix
x = numpy.ones((10,10))
y = numpy.exp(x)
x = lil_matrix(numpy.ones((10,10)))
# y = ????
numpy.exp(x)
或scipy.exp(x)
产生一个AttributeError
,而numpy.exp(x.data)
产生相同的结果
谢谢 我不知道全部细节,但转换为另一种类型是可行的,至少在使用非零元素数组时是这样:
xcsc = x.tocsc()
numpy.exp(xcsc.data) # works
对正如文档中所说,lil格式主要用于构建不执行操作的稀疏数组。文档建议在构建阵列后进行此转换。我认为目前在任何稀疏矩阵格式中都无法进行此转换。就我个人而言,我认为应该创建单独的稀疏函数,而不是减慢常规函数的速度。如Olivier所示,解决方法是转换为基本上任何其他稀疏格式,并处理
数据
属性。lil矩阵的data属性对此不起作用,因为它是object类型的数组。