2011-03-25 3 views
7

예를 들어 numpy.exp 또는 이와 유사한 pointwise 연산자를 scipy.sparse.lil_matrix 또는 다른 희소 행렬 형식의 모든 요소에 적용 할 수 있습니까?scipy.sparse 행렬에 pointwise 연산

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) 동일한 산출한다.

감사합니다.

+1

을 스파 스 매트릭스 형식. 개인적으로, 나는 분리 된 희소 기능이 일반 기능을 느리게하기보다는 만들어야한다고 생각한다. 올리비에 (Olivier)가 보여 주듯이이 해결 방법은 기본적으로 다른 모든 희소 형식으로 변환하여'data' 속성에서 작업하는 것입니다. lil 행렬의 데이터 속성은 type 객체의 배열이므로이 작업을 수행하지 않습니다. –

답변

6

나는 자세한 내용을 알고 있지만 다른 종류의 작품으로 변환하지 않는 비 제로 요소의 배열을 사용하여 적어도 때 나는 현재이 어떤에서 작동하도록 만들 아니라고 생각

xcsc = x.tocsc() 
numpy.exp(xcsc.data) # works 
+2

예. 문서 http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.lil_matrix.html에서 말하듯이 lil 형식은 주로 조작을 수행하지 않는 스파 스 배열을 작성하는 방법으로 사용하기위한 것입니다 . 문서가 배열되면이 변환을 수행하는 것이 좋습니다. – Paul