當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.array.block用法及代碼示例

用法:

dask.array.block(arrays, allow_unknown_chunksizes=False)

從嵌套的塊列表中組裝 nd-array。

最內層列表中的塊沿著最後一個維度 (-1) 連接,然後這些塊沿著 second-last 維度 (-2) 連接,依此類推,直到到達最外層列表

塊可以是任何維度,但不會使用正常規則進行廣播。相反,插入大小為 1 的引導軸,以使所有塊的 block.ndim 相同。這主要用於處理標量,這意味著像 block([v, 1]) 這樣的代碼是有效的,其中 v.ndim == 1

當嵌套列表有兩層深度時,這允許從它們的組件構造塊矩陣。

參數

arrays數組 或標量的嵌套列表(但不是元組)

如果傳遞單個 ndarray 或標量(深度為 0 的嵌套列表),則返回未修改(且未複製)。

元素形狀必須沿適當的軸匹配(不廣播),但前導 1 將根據需要添加到形狀之前以使尺寸匹配。

allow_unknown_chunksizes: bool

允許未知的塊大小,例如來自從 dask 數據幀轉換而來的。 Dask.array 無法驗證塊是否對齊。如果數據來自不同對齊的來源,那麽這可能會導致意外結果。

返回

block_arrayndarray

從給定塊組裝的數組。

輸出的維數等於以下各項中的最大值: * 所有輸入的維數 * 輸入列表嵌套的深度

拋出

ValueError
  • 如果列表深度不匹配 - 例如,[[a, b], c] 是非法的,應拚寫為 [[a, b], [c]]
  • 如果列表為空 - 例如,[[a, b], []]

注意

當僅使用標量調用時,block 等效於 ndarray 調用。所以 block([[1, 2], [3, 4]]) 等價於 array([[1, 2], [3, 4]])

此函數不強製塊位於固定網格上。 block([[a, b], [c, d]]) 不限於以下形式的數組:

AAAbb
AAAbb
cccDD

但也允許生產,對於一些 a, b, c, d

AAAbb
AAAbb
cDDDD

由於連接首先發生在最後一個軸上,block _not_ 能夠直接產生以下內容:

AAAbb
cccbb
cccDD

Matlab 的“square bracket stacking”,[A, B, ...; p, q, ...],等價於block([[A, B, ...], [p, q, ...]])

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.block。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。