Gegenwärtig unterstützt dask.array keine Artikelzuordnung oder eine andere Mutationsoperation.
Im obigen Fall ich mit Nullen verketten empfehlen
In [1]: import dask.array as da
In [2]: dx = da.random.random((20000 - 50, 100, 100), chunks=(None, 10, 10))
In [3]: z = da.zeros((50, 100, 100), chunks=(50, 10, 10))
In [4]: dx2 = da.concatenate([z, dx], axis=0)
In [5]: dx2
Out[5]: dask.array<concate..., shape=(20000, 100, 100), dtype=float64, chunksize=(50, 10, 10)>
In [6]: (dx2 == 0)[0:100, 0, 0].compute()
Out[6]:
array([ True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False, False], dtype=bool)
Die da.where(condition, iftrue, iffalse)
Funktion auch Fälle, in Arbeit um sehr nützlich sein kann, wo Mutation oft erwünscht ist.
Danke, MRocklin! Das funktioniert großartig! Betrachten Sie nun einen Fall, in dem Sie eine Liste von Werten haben (zB 'index = [10, 20, 25, 50, 100, 120]'), um die 0. Achse von dx zu indizieren, und alle Elemente, die diesen Indexwerten entsprechen, müssen zugewiesen werden. Die Verkettung würde in diesem Fall nicht funktionieren, und soweit ich das beurteilen kann, würde 'da.where' auch nicht funktionieren. Kennen Sie einen Workaround für diesen speziellen Fall? – Lcg3