我在二维数组中设置多个元素的值,但是我的数据有时包含给定索引的多个值。
似乎总是分配“稍后”的值(参见下面的示例),但是这种行为是否得到保证,或者我是否有可能得到不一致的结果?我怎么知道我可以在矢量化分配中以我想要的方式解释“稍后”?
即在我的第一个示例中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]