このようなスパース行列を取得しました
>>>import numpy as np
>>>from scipy.sparse import *
>>>A = csr_matrix((np.identity(3)))
>>>print A
(0, 0) 1.0
(1, 1) 1.0
(2, 2) 1.0
理解を深めるためA
に、次のようなものがあります。
>>>print A.todense()
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
そして、私はこれを行うオペレーター(私たちはそれを呼びましょうop1(n)
)を持っていたいです:
>>>A.op1(1)
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 1. 0. 0.]]
=>最後のn
列を最初の列にするn
ので
>>>A == A.op1(3)
true
。スパース行列を再び返す組み込みソリューション(EDIT :)はありますか?との解決策roll
:
X = np.roll(X.todense(),-tau, axis = 0)
print X.__class__
戻り値
<class 'numpy.matrixlib.defmatrix.matrix'>