У меня есть одномерный массив NumPy и я хочу хранить его редкие обновления.Скажем, у меня есть массив длиной 500000 и я хочу сделать 100 обновлений по 100 элементов.Обновления - это либо добавление, либо просто изменение значений (я не думаю, что это имеет значение).
Каков наилучший способ сделать это, используя numpy?Я хотел просто сохранить два массива: индексы, values_to_add и, следовательно, иметь два объекта: один хранит плотную матрицу, а другой просто сохраняет индексы и значения для добавления, и я могу просто сделать что-то подобное с плотной матрицей:
dense_matrix[indices] += values_to_add
И если у меня есть несколько обновлений, я просто конкатирую их.
Но этот тупой синтаксис не работает нормально с повторяющимися элементами: они просто игнорируются.
Обновление пары, когда мы имеемобновление, которое повторяет индекс, является O (n).Я думал об использовании dict вместо массива для хранения обновлений, который с точки зрения сложности выглядит неплохо, но выглядит не очень хорошо.
Какой самый выразительный способ добиться этого?Я знаю о скудных разреженных объектах, но (1) я хочу чисто наглую, потому что (2) я хочу понять, как наиболее эффективно реализовать это.