11 NumPy数组之二维数组

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

创建二维数组

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

示例:创建一个二维数组

1
2
3
4
5
6
import numpy as np

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

输出:

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

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

属性

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

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

示例:查看数组的属性

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

访问和修改元素

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

示例:访问和修改

1
2
3
4
5
6
7
8
# 访问元素
first_element = array_2d[0, 0]
print("第一个元素:", first_element) # 输出: 1

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

输出:

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

切片操作

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

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

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

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

数组的运算

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

示例:元素级运算

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

输出:

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

矩阵运算

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

示例:矩阵乘法

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

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

输出:

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

总结

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

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

11 NumPy数组之二维数组

https://zglg.work/numpy-zero/11/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论