Я пытаюсь применить оператор сложения к массиву, где я хочу, чтобы повторяющиеся индексы указывали на повторяющиеся операции сложения. Из Python Data Science Book (https://jakevdp.github.io/PythonDataScienceHandbook/02.07-fancy-indexing.html), кажется, что это возможно при использовании np.add.at(original matrix, indices, thing to add)
, но я не могу понять, как указать индексы для работы со столбцами, а не со строками.
например. Пустышка Пример
# Create Array
A = np.arange(12)
A = A.reshape(4,3)
print(A)
дает
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
и
# Create columns to add to A (in reality, all values won't be the same)
B = np.ones_like(A[:, [0,0]])
print(adder)
дает
[[1 1]
[1 1]
[1 1]
[1 1]]
Я хочу выполнить операцию A[:, [0, 0]] += B
, но с использованием системы, в которой повторяющиеся индексы указывают на повторяющиеся операции (поэтому в этом случае оба столбца B добавляются в столбец 0). Результат должен быть таким:
[[ 2 1 2]
[ 5 4 5]
[ 7 7 8]
[ 11 10 11]]
Это можно сделать, используя np.add.at(A, I, B)
Я полагаю, но как мне указать индексы I
, соответствующие [:, [0,0]]
, поскольку это дает синтаксическую ошибку (кажется, что матрица индексов не может содержать :
персонаж?).
Спасибо