我有一个稀疏数组,说:
from scipy import sparse
a = sparse.lil_matrix((2,3),)
a[0] = [1, 2, 3]
a[1, 2] = 5
所以它看起来像:
(0, 0) 1.0
(0, 1) 2.0
(0, 2) 3.0
(1, 2) 5.0
我想知道 - 是否有一种简单的方法来翻转行(类似于numpy.fliplr
)? ...所以我会得到输出:
(0, 0) 3.0
(0, 1) 2.0
(0, 2) 1.0
(1, 0) 5.0
答案 0 :(得分:0)
一种方法是将数组转换为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)
产量
(0, 2) 1.0
(0, 1) 2.0
(0, 0) 3.0
(1, 0) 5.0
答案 1 :(得分:0)
您可以执行多索引分配:
ii = [2,1,0,3]
a[:,1] = a[ii,:]
ii
是一个索引数组,你必须以某种方式创建。