Python Programming

Python中创建二维数组

Spread the love

二维数组,或矩阵,是编程中基本的数据结构,尤其对于图像处理、线性代数和游戏开发等任务至关重要。虽然Python不像某些语言(例如C++)那样具有内置的二维数组类型,但它提供了几种高效且优雅的创建和操作二维数组的方法。本文将探讨三种常用的方法:列表推导式、嵌套循环和强大的NumPy库。

目录

列表推导式方法

列表推导式提供了一种简洁且Pythonic的创建二维数组的方法,尤其在用公式或模式生成的数值进行初始化时非常有用。它使用嵌套列表推导式,外层循环处理行,内层循环处理列。


# 3x4数组,填充为零
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d)  # 输出: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

# 3x3数组,数值基于行和列索引
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d)  # 输出: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]

# 2x2数组,包含随机数 (需要导入random库)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # 输出: (示例) [[7, 2], [9, 5]]

嵌套循环方法

这种方法使用嵌套的for循环和range函数,逐个元素迭代行和列来构建数组。它比列表推导式更冗长,但对于初学者更容易理解。


rows = 3
cols = 4

array_2d = []
for i in range(rows):
    row = []
    for j in range(cols):
        row.append(0)  # 或任何其他初始化值
    array_2d.append(row)

print(array_2d)  # 输出: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

rows = 3
cols = 3
array_2d = []
for i in range(rows):
    row = []
    for j in range(cols):
        row.append(i*cols + j) #示例:用连续数字填充
    array_2d.append(row)
print(array_2d) # 输出: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

NumPy数组

NumPy是Python中用于数值计算的强大库。它的numpy.array()函数提供了高效创建和操作多维数组的方法。对于数值运算,NumPy数组的性能比Python列表显著提高。


import numpy as np

# 3x4数组,填充为零
array_2d = np.zeros((3, 4))
print(array_2d)

# 3x3数组,填充为一
array_2d = np.ones((3, 3))
print(array_2d)

# 2x2数组,填充为特定值
array_2d = np.full((2, 2), 7)
print(array_2d)

# 3x3单位矩阵
array_2d = np.eye(3)
print(array_2d)

# 2x3数组,包含0到1之间的随机数
array_2d = np.random.rand(2, 3)
print(array_2d)

# 2x2数组,包含1到10之间的随机整数
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)

NumPy提供了各种函数,用于用不同的值和模式初始化数组,使其成为涉及二维数组的数值计算的首选。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注