numpy.array用 a索引 a 時出現錯誤dask.array,我不確定這是功能還是錯誤。
In [1]: import numpy as np
In [2]: import dask.array as dka
In [3]: foo = np.arange(10)
In [4]: bar = np.arange(3)
In [5]: foo[bar]
Out[5]: array([0, 1, 2])
In [6]: foo[dka.from_array(bar)]
<ipython-input-16-9c4b06c0d0c4>:1: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
foo[dka.from_array(bar)]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-16-9c4b06c0d0c4> in <module>
----> 1 foo[dka.from_array(bar)]
IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed
我正在使用版本dask==2022.01.0和numpy==1.22.0.
uj5u.com熱心網友回復:
正如錯誤所說的那樣(盡管不是很清楚),問題在于 numpy 不將 dask 陣列識別為受支持的型別,但確實將它們識別為序列,因此將您的索引操作解釋為嘗試做多維索引。
如果您明確表示您正在嘗試為第一個維度提供索引陣列,那么這很好用:
In [5]: foo[dka.from_array(bar), ...]
Out[5]: array([0, 1, 2])
或者等價地,您可以使用np.take或使用許多索引選項中的任何一個:
In [6]: np.take(foo, dka.from_array(bar), axis=0)
Out[6]: array([0, 1, 2])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433842.html
上一篇:熊貓:計算資料框中列的相鄰差異
下一篇:轉換字典中的值
