📜  Python程序使用numpy打印NxN的棋盘图案

📅  最后修改于: 2020-04-19 14:15:26             🧑  作者: Mango

给定n,为nxn矩阵打印棋盘图案
n = 8的棋盘图案:
它由n * n个正方形组成,白色交替为0,黑色交替为1。

我们可以使用嵌套的for循环和某些if条件来执行相同的操作,但是使用Python的numpy库,我们可以导入二维矩阵并使用切片来获得棋盘格图案。
将使用以下Python函数打印成棋盘格

x = np.zeros((n,n),dtype = int)

使用此函数,我们使用numpy初始化所有元素均为0的2-D矩阵

  • x [1 :: 2,:: 2] = 1:从第一个索引行切片到1 + 2 + 2…,并从索引=0到0 + 2 + 2…填充所有列,依此类推。
  • x [:: 2,1 :: 2] = 1:从第0行切片到0 + 2 + 2…,并从1到1 + 2 + 2 +…..填充所有列。

np.zeros((n,n),dtype = int)函数:通常,数组的元素最初是未知的,但是其大小是已知的。因此,NumPy提供了几个函数来创建具有初始占位符内容的数组。这些将增长阵列的必要性降至最低,增长形状是一项昂贵的操作。使用dtype参数初始化所有具有int数据类型的值。
例如:np.zeros,np.ones等。

# Python程序使用numpy打印nXn棋盘图案
import numpy as np
# 打印棋盘图案的功能
def printcheckboard(n):
    print("棋盘图案:")
    # 创建一个n * n矩阵
    x = np.zeros((n, n), dtype = int)
    # 用1填充备用行和列
    x[1::2, ::2] = 1
    x[::2, 1::2] = 1
    # 打印图案
    for i in range(n):
        for j in range(n):
            print(x[i][j], end =" ")
        print()
# 驱动程式码
n = 8
printcheckboard(n)

输出:

棋盘图案:
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0