需要识别我发现的函数中嵌套for循环的含义



我碰巧遇到一个函数,它采用一个nxn矩阵,并将其一个接一个地转换为一和零。我想知道这些嵌套循环是如何工作的,为什么我们使用嵌套for循环,为什么我们键入(0,mat.shape[0],2(,为什么我们在第二个嵌套for循环的开头有"1",每个for循环的结尾有什么"2"。功能是:

import numpy as np

def chess_board(n):
mat = np.ones((n, n))
for i in range(0, mat.shape[0], 2):
for j in range(0, mat.shape[1], 2):
mat[i, j] = 0
for i in range(1, mat.shape[0], 2):
for j in range(1, mat.shape[0], 2):
mat[i, j] = 0
print(mat)

chess_board(n=5)

因此mat.shape将提供矩阵的维度。由于矩阵是5x5,所以这样做实际上没有意义,因为这两个值都是5。

1是因为我们需要将每行和每列偏移1。想象一下,最上面的点(0,0(是棋盘上的一个0。如果我们将行和列都偏移1,我们得到(1,1(,它沿着同一对角线。棋盘上的对角线具有相同的颜色(等于相同的值-0或1(。

2是因为我们希望其他每个正方形都是相同的颜色/值。因此,如果(0,0(是白色,(0,1(是黑色,然后(0,2(又是白色。2是";步骤";range函数中的参数。因此,范围(0,11,2(将产生0,2,4,6,8,10

只需简要说明一下:

=>shape[0]:行数

=>shape[1]:列数

=>这2只会使i和j在每次迭代中跳2步。类似i+=2/j+=2

最新更新