Dask: ошибка присваивания при обновлении значения в массиве dask с использованием типичной индексной последовательности
Я конвертирую код для использования массивов dask вместо массивов numpy.
У меня установлена версия dask 0.19.4.
У меня есть массив, который был заменен эквивалентным массивом DASK:
# this used to be a numpy array, created like so:
# da = np.zeros((total_months,))
da = dask.array.zeros((total_months,), chunks=(-1))
Когда я нажимаю на следующую строку кода (которая ранее работала, когда массив был массивом с нулевыми значениями), я получаю ошибку назначения элемента:
for k in range(total_months):
da[k] = awc - s0
NotImplementedError: Item assignment with <class 'int'> not supported
awc
а также s0
оба скаляра с плавающей точкой в приведенном выше.
Насколько я понимаю, обычная нарезка в стиле numpy и индексация элементов массива работают, как и ожидалось, с dask, но здесь этого не происходит. Кто-нибудь может прокомментировать, где я сбился с пути? Заранее спасибо за помощь.
1 ответ
Правильный. Назначение элементов с целыми числами не поддерживается.
Обычно рабочие процессы, которые перебирают большие массивы с циклами for, не масштабируются. Dask array не пытается их поддерживать.