我有一个形状为
这个运行得很好,而且非常快。 现在,
但是如果我执行以下操作:
有没有一种方法可以在使用稀疏的
(k,N)
的numpy
数组Z
和第二个形状为(N,n)
的数组X
。
利用numpy
广播,我可以轻松地获得一个新的数组H
,形状为(n,k,N)
,其切片是通过将Z
数组的行乘以X
的列而得到的。H = Z.reshape((1, k, N)) * X.T.reshape((n, 1, N))
这个运行得很好,而且非常快。 现在,
X
非常稀疏,我想使用稀疏矩阵操作进一步加速此操作。但是如果我执行以下操作:
import scipy.sparse as sprs
spX = sprs.csr_matrix(X)
H = (Z.reshape((1,k,N))*spX.T.reshape((n,1,N))).dot(Z.T)
I get the following error:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python27\lib\site-packages\scipy\sparse\base.py", line 126, in reshape
self.__class__.__name__)
NotImplementedError: Reshaping not implemented for csc_matrix.
有没有一种方法可以在使用稀疏的
scipy
矩阵时进行广播?