Python中的稀疏数组行翻转

2024-06-02 17:26:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个稀疏数组,比如:

from scipy import sparse
a = sparse.lil_matrix((2,3),)
a[0] = [1, 2, 3]
a[1, 2] = 5

所以它看起来像:

^{pr2}$

我在想-有没有一种简单的方法来翻转行(类似于numpy.fliplr等价物)。。。所以我得到的输出是:

(0, 0)  3.0
(0, 1)  2.0
(0, 2)  1.0
(1, 0)  5.0

Tags: 方法fromimportnumpyscipy数组matrixsparse
2条回答

一种方法是将数组转换为csr格式,然后操作行索引:

from scipy import sparse
a = sparse.lil_matrix((2,3),)
a[0] = [1, 2, 3]
a[1, 2] = 5

a = a.tocsr()
a.indices = -a.indices + a.shape[1] - 1
print(a)

收益率

^{pr2}$

您可以执行多索引分配:

ii = [2,1,0,3]
a[:,1] = a[ii,:]

其中ii是必须以某种方式创建的索引数组。在

相关问题 更多 >