gpt4 book ai didi

numpy - 翻转稀疏矩阵

转载 作者:行者123 更新时间:2023-12-02 22:34:14 24 4
gpt4 key购买 nike

我得到了一些像这样的稀疏矩阵

>>>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.]]

我希望有一个运算符(operator)(让我们称之为 op1(n) )这样做:

>>>A.op1(1)
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 1. 0. 0.]]

=> 使最后的 n 列成为前 n 列,所以

>>>A == A.op1(3)  
true

.是否有一些内置解决方案(编辑:)再次返回稀疏矩阵?roll 的解决方案:

X = np.roll(X.todense(),-tau, axis = 0)
print X.__class__

返回

<class 'numpy.matrixlib.defmatrix.matrix'>

最佳答案

scipy.sparse 没有roll,但是你可以用hstack模拟它:

from scipy.sparse import *
A = eye(3, 3, format='csr')
hstack((A[:, 1:], A[:, :1]), format='csr') # roll left
hstack((A[:, -1:], A[:, :-1]), format='csr') # roll right

关于numpy - 翻转稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com