Dask: ошибка присваивания при обновлении значения в массиве dask с использованием типичной индексной последовательности - PullRequest
0 голосов
/ 22 октября 2018

Я конвертирую код для использования массивов 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 Ответ

0 голосов
/ 23 октября 2018

Правильно.Назначение элементов с целыми числами не поддерживается.

Обычно рабочие процессы, которые перебирают большие массивы с циклами for, не масштабируются.Массив Dask не пытается их поддерживать.

...