使用 Python 生成数表

发布于:2024-04-28 ⋅ 阅读:(19) ⋅ 点赞:(0)

使用 Python 生成数表

import numpy as np
import matplotlib.pyplot as plt


def generate_list_array(n, lower=10, upper=99):
    # 使用 NumPy 生成随机矩阵
    np_array = np.random.randint(lower, upper + 1, size=(n, n))
    py_list = np_array.tolist()

    # 创建图像并设置背景为白色
    fig, ax = plt.subplots()
    ax.set_facecolor("white")  # 设置背景颜色为白色

    # 在图中为每个单元格添加黑色的数值标签
    for (i, j), val in np.ndenumerate(np_array):
        ax.text(j, i, str(val), ha="center", va="center", color="black")

    # 隐藏所有轴的边框线
    for spine in ax.spines.values():
        spine.set_visible(False)

    # 设置轴的外观
    ax.set_xticks(np.arange(n) - 0.5, minor=True)  # 设置网格线位置
    ax.set_yticks(np.arange(n) - 0.5, minor=True)
    # ax.grid(which="minor", color="gray", linestyle="-", linewidth=2)  # 显示网格线
    ax.tick_params(which="both", size=0)  # 隐藏主刻度
    ax.set_xticks([])
    ax.set_yticks([])  # 隐藏所有刻度标签

    # 设置轴的范围,使其围绕数值正好显示
    ax.set_xlim(-0.5, n - 0.5)
    ax.set_ylim(n - 0.5, -0.5)

    # plt.title("Matrix Visualization")

    # 保存图像到当前目录
    plt.savefig("matrix_visualization.png", format="png")
    # plt.show()

    # 格式化 NumPy 数组输出为字符串列表
    np_array = ["[" + " ".join(map(str, row)) + "]" for row in np_array]

    return py_list, np_array


py_list, np_array = generate_list_array(20)

print("标准的 Python 列表格式:")
for row in py_list:
    print(row)
print("\nNumPy 数组格式:")
for row in np_array:
    print(row)

数表:

matrix_visualization.png


网站公告

今日签到

点亮在社区的每一天
去签到