Jupyter AI

11 NumPy数组之二维数组

📅 发表日期: 2024年8月10日

分类: 🔢Numpy 入门

👁️阅读: --

在上一章中,我们学习了一维数组的创建和操作。在本章中,我们将深入了解NumPy的二维数组。二维数组可以被视为一个矩阵,其中行和列组成了数据的结构。这使得二维数组在处理表格数据、图像数据等方面非常有用。

创建二维数组

你可以使用numpy.array()函数创建二维数组。这个函数接受一个嵌套列表作为参数,最外层列表的每个元素都是一个子列表,这些子列表代表了二维数组的行。

示例:创建一个二维数组

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:")
print(array_2d)

输出:

二维数组:
[[1 2 3]
 [4 5 6]]

在这个例子中,我们定义了一个 2×32 \times 3 的数组,表示有2行3列。

属性

你可以使用一些属性来查看二维数组的特性:

  • shape:返回数组的维度。
  • dtype:返回数组中元素的数据类型。
  • size:返回数组中元素的总数。

示例:查看数组的属性

print("数组形状:", array_2d.shape)  # 输出: (2, 3)
print("数据类型:", array_2d.dtype)   # 输出: int64(或其他)
print("元素个数:", array_2d.size)     # 输出: 6

访问和修改元素

在二维数组中,你可以使用行和列的索引来访问和修改特定元素。例如,array_2d[0, 1]表示第一行第二列的元素。

示例:访问和修改

# 访问元素
first_element = array_2d[0, 0]
print("第一个元素:", first_element)  # 输出: 1

# 修改元素
array_2d[0, 0] = 10
print("修改后的二维数组:")
print(array_2d)

输出:

修改后的二维数组:
[[10  2  3]
 [ 4  5  6]]

切片操作

你可以通过切片操作来提取二维数组的特定部分。例如,你可以提取特定的行或列。

示例:使用切片提取行和列

# 提取第一行
first_row = array_2d[0, :]
print("第一行:", first_row)  # 输出: [10  2  3]

# 提取第二列
second_column = array_2d[:, 1]
print("第二列:", second_column)  # 输出: [2 5]

数组的运算

NumPy提供了许多功能来进行数组的计算与操作。例如,你可以进行元素级运算、矩阵乘法等。

示例:元素级运算

# 将二维数组中的每个元素增加5
added_array = array_2d + 5
print("每个元素加5后的数组:")
print(added_array)

输出:

每个元素加5后的数组:
[[15  7  8]
 [ 9 10 11]]

矩阵运算

NumPy还支持矩阵运算,例如矩阵乘法。你可以使用@运算符或numpy.matmul()函数进行矩阵乘法运算。

示例:矩阵乘法

# 定义另一个二维数组
array_2d_b = np.array([[1, 2], [3, 4], [5, 6]])

# 矩阵乘法
result = array_2d @ array_2d_b
print("矩阵乘法结果:")
print(result)

输出:

矩阵乘法结果:
[[ 43  58]
 [ 19  28]]

总结

在本章中,我们学习了NumPy二维数组的创建、属性、访问与修改、切片操作以及基本运算。二维数组为我们提供了强大的数据处理能力,非常适合于处理多维数据。在下一章中,我们将讨论NumPy的三维数组,了解如何处理更复杂的数据结构。

预告:下一章将深入探讨三维数组及其应用,让我们继续保持对NumPy的探索之旅!