NumPy 是 Python 中用于科学计算的一个强大的库。它提供了高效的多维数组对象和一些用于处理数组的函数。如果你正在学习 NumPy,那么本文将会介绍一些你可能会遗漏的重要内容。
- 创建数组
首先,让我们看一下如何创建 NumPy 数组。可以使用 NumPy 的 array()
函数来创建数组。例如,以下代码将创建一个一维数组:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
输出结果为:
[1 2 3 4 5]
你也可以使用 zeros()
函数来创建一个全为零的数组:
arr = np.zeros(5)
print(arr)
输出结果为:
[0. 0. 0. 0. 0.]
你还可以使用 ones()
函数来创建一个全为一的数组:
arr = np.ones(5)
print(arr)
输出结果为:
[1. 1. 1. 1. 1.]
- 数组索引和切片
接下来,让我们看一下如何对数组进行索引和切片。你可以使用方括号 []
来访问数组中的元素。例如,以下代码将访问数组中的第一个元素:
arr = np.array([1, 2, 3, 4, 5])
print(arr[0])
输出结果为:
1
你也可以使用切片来获取数组的子集。以下代码将获取数组中的前三个元素:
arr = np.array([1, 2, 3, 4, 5])
print(arr[:3])
输出结果为:
[1 2 3]
- 数组形状
NumPy 数组具有形状(shape),它表示每个维度的大小。你可以使用 shape
属性来获取数组的形状。例如,以下代码将获取一个二维数组的形状:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)
输出结果为:
(2, 3)
这表示该数组具有两个维度,第一个维度的大小为 2,第二个维度的大小为 3。
你可以使用 reshape()
函数来更改数组的形状。以下代码将把一个一维数组转换为一个二维数组:
arr = np.array([1, 2, 3, 4, 5, 6])
arr = arr.reshape(2, 3)
print(arr)
输出结果为:
[[1 2 3]
[4 5 6]]
- 数组运算
NumPy 中的数组支持各种运算。以下代码将展示一些常见的数组运算:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 加法
print(arr1 + arr2)
# 减法
print(arr1 - arr2)
# 乘法
print(arr1 * arr2)
# 除法
print(arr1 / arr2)
# 平方
print(arr1 ** 2)
# 平方根
print(np.sqrt(arr1))
输出结果为:
[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4 0.5 ]
[1 4 9]
[1. 1.41421356 1.73205081]
- 数组排序
你可以使用 NumPy 的 sort()
函数对数组进行排序。以下代码将对一个一维数组进行排序:
arr = np.array([3, 2, 1, 4, 5])
arr = np.sort(arr)
print(arr)
输出结果为:
[1 2 3 4 5]
你也可以对一个二维数组进行排序,只需指定 axis
参数。以下代码将对一个二维数组的每一行进行排序:
arr = np.array([[3, 2, 1], [6, 5, 4], [9, 8, 7]])
arr = np.sort(arr, axis=1)
print(arr)
输出结果为:
[[1 2 3]
[4 5 6]
[7 8 9]]
- 数组统计
NumPy 还提供了许多用于统计数组的函数。以下代码将展示一些常见的数组统计函数:
arr = np.array([1, 2, 3, 4, 5])
# 平均值
print(np.mean(arr))
# 中位数
print(np.median(arr))
# 标准差
print(np.std(arr))
# 方差
print(np.var(arr))
# 最小值
print(np.min(arr))
# 最大值
print(np.max(arr))
输出结果为:
3.0
3.0
1.4142135623730951
2.0
1
5
这些函数可以帮助你更好地理解数组中的数据分布。
- 矩阵运算
最后,让我们看一下如何进行矩阵运算。NumPy 提供了许多用于矩阵运算的函数。以下代码将展示一些常见的矩阵运算函数:
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
# 矩阵乘法
print(np.dot(arr1, arr2))
# 转置
print(arr1.T)
# 行列式
print(np.linalg.det(arr1))
# 逆矩阵
print(np.linalg.inv(arr1))
输出结果为:
[[19 22]
[43 50]]
[[1 3]
[2 4]]
-2.0000000000000004
[[-2. 1. ]
[ 1.5 -0.5]]
这些函数可以帮助你更好地处理矩阵运算问题。
总结
本文介绍了一些你可能会遗漏的重要内容,包括创建数组、数组索引和切片、数组形状、数组运算、数组排序、数组统计和矩阵运算。希望这些内容能够帮助你更好地学习 NumPy。