2
I 모양 및 형상 (k,N)
(N,n)
와 제 2 어레이와 X
numpy
배열 Z
있다.사용 방송
H = Z.reshape((1, k, N)) * X.T.reshape((n, 1, N))
이 잘 작동 의외로 빨리 :
numpy
방송을 이용하여 I 쉽게 그 슬라이스 행 X
의 열에 의해 승산 된 배열 Z
있는 형상 (n,k,N)
와 새로운 배열 H
을 얻을 수있다 . 이제 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)
나는 다음과 같은 오류 얻을 :
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
행렬과 방송 사용하는 방법이 있나요를?
2 차원 제한 외에도 스파 스 수학은 다른 스파 스 매트릭스에서만 작동합니다. 밀도가 높은 배열로 작업 할 때 스파 스 행렬은 밀도가 높은 행렬로 변환됩니다. 다양한 수학 연산에서 어떤 일이 일어나는지 보려면'spX'를 가지고 놀아보십시오. – hpaulj