Я пытался векторизовать некоторые вычисления списка, но обнаружил что-то странное, когда пытался использовать список в качестве индекса, особенно когда я пытаюсь вернуться к исходному списку, повторяющийся индекс списка кажется бесполезным:
import numpy as np
x = np.arange(10)
y = np.array([1,2,3,4,5])
z = np.array([1,1,1,1,1])
print(x[y], x[z])
>>out: [1 2 3 4 5] [1 1 1 1 1], как я и ожидал
x = np.arange(10)
x[y] -= 1
print(x[y])
>>out: [0 1 2 3 4] это хорошо, так как нет повторения в индексном списке
x = np.arange(10)
x[z] -= 1
print(x[y])
>> out:[0 2 3 4 5], Здесь я ожидаю [-4 2 3 4 5], значит x[1] должен -- 5 раз, а получается вычитать только один раз< /сильный>