【发布时间】:2021-10-24 14:52:09
【问题描述】:
我在使用 numpy 花式索引时遇到问题,我不知何故无法理解。 我知道,我可以得到这样的行子矩阵数组:
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
B = A[np.array([[0,1],[1,2]])]
这给出了:
array([[[1, 2, 3],
[4, 5, 6]],
[[4, 5, 6],
[7, 8, 9]]])
一个三维 numpy 数组,包含矩阵,分别包括 A 的第一、第二行和第二、第三行。 我现在想要的是对于 A 的 cols 应该给出的基本相同的操作
array([[[1, 2],
[4, 5],
[7, 8]],
[[2, 3],
[5, 6],
[8, 9]]])
但是
B = A[:,np.array([[0,1],[1,2]])]
不起作用(可能是因为索引评估的顺序)。它给了
array([[[1, 2],
[2, 3]],
[[4, 5],
[5, 6]],
[[7, 8],
[8, 9]]])
我怎样才能以最好的方式做到这一点?我应该使用转置矩阵吗?
【问题讨论】:
-
什么是“numpy 花式索引”?
-
我不确定这是否是一个共同的教派。但我的意思是,你用另一个数组索引一个 numpy 数组。在 numpy 文档中,我认为他们称之为“高级索引”
-
显示错误
B
标签: python arrays numpy indexing