我正在设置一个二维数组中多个元素的值,但是我的数据有时包含给定索引的多个值。
似乎“后面”值总是被分配(如下面的示例所示),但这种行为是否得到保证,或者是否存在不一致的结果?我怎样知道可以以向量化的方式解释“后面”?
例如,在我的第一个示例中,a
中一定包含 4
,而在第二个示例中,values[0]
是否会打印出来呢?
非常简单的示例:
import numpy as np
indices = np.zeros(5,dtype=np.int)
a[indices] = np.arange(5)
a # array([4])
另一个例子
import numpy as np
grid = np.zeros((1000, 800))
# generate indices and values
xs = np.random.randint(0, grid.shape[0], 100)
ys = np.random.randint(0, grid.shape[1], 100)
values = np.random.rand(100)
# make sure we have a duplicate index
print values[0], values[5]
xs[0] = xs[5]
ys[0] = ys[5]
grid[xs, ys] = values
print "output value is", grid[xs[0], ys[0]]
# always prints value of values[5]