如何创建一个 NumPy 数组 B
,它是 NumPy 数组 A
的子数组,通过指定哪些行和列(由 x 表示)
和 y
分别)将被包括在内?
例如:
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 .....
应该给出输出:
>>> B
array([[2, 4, 5], [12, 14, 15]])
最佳答案
最好的方法是使用 ix_
函数:参见 answer by MSeifert了解详情。
或者,您可以使用 x
和 y
链接索引操作:
>>> A[x][:,y]
array([[ 2, 4, 5],
[12, 14, 15]])
第一个x
用于选择A
的行。接下来,[:,y]
挑选出由 y
的元素指定的子数组的列。
在这种情况下,链接是对称的:如果您愿意,您也可以先使用 A[:,y][x]
选择列。
关于python - 通过指定行和列从另一个数组创建 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26493689/