没问题:
>>> t = np.array([[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]])
>>> x = np.arange(5).reshape((-1,1)); y = np.arange(5)
>>> print (t[[x]],t[[y]])
大问题:
>>> s = scipy.sparse.csr_matrix(t)
>>> print (s[[x]].toarray(),s[[y]].toarray())
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
: :
: :
ValueError: data, indices, and indptr should be rank 1
s.toarray()[[x]]
的效果很好,但是我的数组太大了,这违背了我使用稀疏矩阵的初衷。我已经检查了一些稀疏矩阵相关的属性和方法,但没有找到任何关于高级索引的内容。有什么想法吗?
t[np.array([x])]
而不是t[x,]
,这会给个别索引添加一个额外的维度。我不会相信稀疏索引能够必然处理这种情况,因为你想要它这样做。 - seberg