正确选择块 - dask数组的规范

时间:2016-01-20 09:14:58

标签: python dask

根据dask documentaion,可以通过以下三种方式之一指定块:

  
      
  • 像1000这样的块大小
  •   
  • 像(1000,1000)
  • 的块状形状   
  • 所有维度的所有块的显式大小,如((1000,1000,500),(400,400))
  •   
     

您的块输入将被标准化并以第三种也是最明确的形式存储。

在尝试使用 visualize()功能了解块的工作方式后,仍然有一些我不确定的事情:

如果输入是标准化的,那么我选择哪种输入形式是否重要?

Blocksize 表示每个块的大小为X,即1000. blockshape 输入指定了什么?

在提供 blockshape 输入时,参数的顺序是否有所不同?它与阵列/矩阵的形状有什么关系?

1 个答案:

答案 0 :(得分:8)

该列表中较低的表单更明确,允许块形状中更大的不对称性。

实施例

我们将通过以下数组中 $('textarea').each(function() { // Check to see if the placeholder value equals the actual value if ($(this).attr('placeholder') == $(this).val()) { // If so, empty the actual value $(this).val(""); } }); 的一系列示例来讨论这个问题:

chunks

我们展示了不同的1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 参数如何将数组拆分为不同的块

chunks

大小为3的对称块

chunks=3

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

大小为2的对称块

chunks=2

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

不对称但重复的大小chunks=(3, 2)

(3, 2)

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

不对称但重复的大小chunks=(1, 6)

(1, 6)

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

不对称和非重复的块

chunks=((2, 4), (3, 3))

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

不对称和非重复的块

chunks=((2, 2, 1, 1), (3, 2, 1))

讨论

后者的例子很少由用户提供原始数据,但是来自复杂的切片和广播操作。一般来说,我使用最简单的形式,直到我需要更复杂的形式。块的选择应与您想要的计算一致。

例如,如果您计划沿第一个维度取出薄片,那么您可能希望使该维度比其他维度更瘦。如果您打算进行线性代数,那么您可能需要更多对称块。

相关问题