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 не пытается их поддерживать.

Другие вопросы по тегам