通过指定行和列从另一个数组创建 NumPy 数组

Kar*_*rus 4 python arrays numpy

如何通过指定要包含哪些行和列(分别由和表示)来创建B作为 NumPy array 的子数组的NumPy 数组?Axy

例如:

A = numpy.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
x = [0, 2]
y = [1, 3, 4]
B = # Do something .....
Run Code Online (Sandbox Code Playgroud)

应该给出输出:

>>> B
array([[2, 4, 5], [12, 14, 15]])
Run Code Online (Sandbox Code Playgroud)

Ale*_*ley 6

最好的方法是使用该ix_函数:有关详细信息,请参阅MSeifert 的答案。

或者,您可以使用xand来链接索引操作y

>>> A[x][:,y]
array([[ 2,  4,  5],
       [12, 14, 15]])
Run Code Online (Sandbox Code Playgroud)

Firstx用于选择 的行A。接下来,[:,y]挑选由 的元素指定的子数组的列y

在这种情况下,链接是对称的:A[:,y][x]如果您愿意,您也可以首先选择列。