Я устанавливаю значения нескольких элементов в 2D-массиве, однако мои данные иногда содержат несколько значений для данного индекса.
Кажется, что значение "позже" всегда назначается (см. примеры ниже), но гарантируется ли это поведение или есть вероятность, что я получу противоречивые результаты? Как узнать, что я могу интерпретировать "позже" так, как хотелось бы в векторизованном назначении?
то есть. в моем первом примере 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]