数组类/数据类型( ndarray )有一个strides字段,它是一个元组,表示在数组中每个维度的字节数。

让我们在将数独谜题分割成 3 x 3 个方格的问题上应用一些步长技巧。

简而言之,数独谜题由 3 x 3 个方格组成。每个方格中包含九个数字。更多信息请参见 http://en.wikipedia.org/wiki/Sudoku。

分三步来做,让我们来看看是怎么做的。

要应用跨步技巧,我们需要做如下工作:

首先, 我们定义数独数组。

这个数组中填充的是一个实际解出的数独谜题的内容:

NumPy基础之数独的步长 第二步 ( ndarray)的 ( itemsize )字段给出了数组的字节数。

给定 ( itemsize ) 字段,计算跨距:

NumPy基础之数独的步长 第三步 现在我们可以将谜题分割成多个正方形,我们可以使用 ( as_strided)方法来完成,该方法可以在 ( np.lib.stride_tricks ) 模块中找到。

下面的代码可以实现这一功能:

NumPy基础之数独的步长 打印独立数独方格的代码如上。

你现在需要知道发生了什么?

我们运用了跨步技巧,将数独谜题分割成 3 x 3 个方格。步长告诉我们在数独数组中每一步需要跳过的字节数。

参考文献

有关 strides 属性的文档,请访问 http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.strides.html。