如何从 NumPy 中的二维数组获取多个坐标
How to get multiple coordinates from 2d array in NumPy
我有一个矩阵 A
和一个对应于坐标 C
的(元组列表)。我如何获得 A[C]
?
例如:
>>> A
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>> C
[(0,0), (1,2), (4,-1)]
我想要但不知道名字的功能是这样的:
>>> func(A,C)
[0, 7, 24]
是否存在这样的函数(或一些时髦的 NumPy 索引语法),或者 for
循环是否是获得此结果的唯一方法?
您有 X,Y
对的列表。这不能直接提供给数组索引器 - 它需要稍微改变一下。
而不是 [(X,Y), (X,Y), (X,Y)]
,您需要 [(X,X,X), (Y,Y,Y)]
:
>>> x = [x for x,y in C]
>>> y = [y for x,y in C]
>>> A[x, y]
array([ 0, 7, 24])
或者更简单:
>>> A[tuple(zip(*C))]
array([ 0, 7, 24])
我有一个矩阵 A
和一个对应于坐标 C
的(元组列表)。我如何获得 A[C]
?
例如:
>>> A
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>> C
[(0,0), (1,2), (4,-1)]
我想要但不知道名字的功能是这样的:
>>> func(A,C)
[0, 7, 24]
是否存在这样的函数(或一些时髦的 NumPy 索引语法),或者 for
循环是否是获得此结果的唯一方法?
您有 X,Y
对的列表。这不能直接提供给数组索引器 - 它需要稍微改变一下。
而不是 [(X,Y), (X,Y), (X,Y)]
,您需要 [(X,X,X), (Y,Y,Y)]
:
>>> x = [x for x,y in C]
>>> y = [y for x,y in C]
>>> A[x, y]
array([ 0, 7, 24])
或者更简单:
>>> A[tuple(zip(*C))]
array([ 0, 7, 24])