数组类/数据类型( ndarray )有一个strides字段,它是一个元组,表示在数组中每个维度的字节数。
让我们在将数独谜题分割成 3 x 3 个方格的问题上应用一些步长技巧。
简而言之,数独谜题由 3 x 3 个方格组成。每个方格中包含九个数字。更多信息请参见 http://en.wikipedia.org/wiki/Sudoku。
分三步来做,让我们来看看是怎么做的。
要应用跨步技巧,我们需要做如下工作:
首先, 我们定义数独数组。
这个数组中填充的是一个实际解出的数独谜题的内容:
第二步 ( ndarray)的 ( itemsize )字段给出了数组的字节数。
给定 ( itemsize ) 字段,计算跨距:
第三步 现在我们可以将谜题分割成多个正方形,我们可以使用 ( as_strided)方法来完成,该方法可以在 ( np.lib.stride_tricks ) 模块中找到。
下面的代码可以实现这一功能:
打印独立数独方格的代码如上。
你现在需要知道发生了什么?
我们运用了跨步技巧,将数独谜题分割成 3 x 3 个方格。步长告诉我们在数独数组中每一步需要跳过的字节数。
参考文献
有关 strides 属性的文档,请访问 http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.strides.html。