有没有更好的方法从numpy数组获取具有x,y坐标的元素?

时间:2013-04-20 00:56:34

标签: performance numpy indexing

可以使用序列元组索引numpy数组,使tpl[0] x 坐标的序列,tple[1] y的序列坐标。一个人只需要使用元组索引数组,因此:other_array[tpl]

我目前有坐标存储在2D数组中,因此向量ar[0]对应于我的 x 值,而ar[1]对应于我的 y 值。

现在,我正在通过创建元组other_array来索引other_array((ar[0], ar[1]))。不幸的是,这个操作是在一个紧密的循环中运行,所以我可以挤出的任何性能都是非常有益的。如果执行10 ^ 8次,创建元组可能会增加一些开销!使用 xy 坐标这样的矩阵是否有更快,更简洁的索引方法?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用另一个数组索引numpy数组,因此您不必创建元组。例如:

In [199]: other_array
Out[199]: 
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

In [200]: ar
Out[200]: 
array([[0, 2, 1],
       [1, 3, 0]])

In [201]: other_array[ar[0], ar[1]]
Out[201]: array([ 1, 13,  5])

如果这不能回答您的问题,您是否可以在问题中加入一个简单的工作示例,说明您目前正在做什么?