NumPy库
NumPy(Numerical Python)是Python中常用的数值计算库,它提供了高性能的多维数组对象和对数组进行操作的函数。
1.多维数组对象(ndarray)
(1)NumPy最重要的对象是ndarray,它是一个具有固定大小的数组,可以包含相同类型的元素。
(2)ndarray的维度称为轴(axes),轴的个数称为秩(rank)。
(3)ndarray对象可以通过索引和切片进行访问和操作。
2.数组创建和初始化
(1)使用NumPy的array()函数可以创建一个ndarray对象。
(2)可以使用NumPy提供的函数创建特定类型的数组,如zeros()、ones()、arange()等。
(3)可以通过reshape()函数改变数组的形状。
3.数组的操作
(1)可以对数组进行基本的算术运算,如加法、减法、乘法、除法等。
(2)可以使用NumPy提供的函数进行数组的逐元素运算,如sqrt()、exp()、sin()等。
(3)可以对数组进行切片和索引操作,获取数组的子集。
4.数组的聚合和统计
(1)NumPy提供了很多聚合函数,如sum()、mean()、min()、max()等,用于对数组进行统计计算。
(2)可以使用axis参数指定在哪个轴上进行聚合操作。
5.数组的广播
(1)NumPy的广播(broadcasting)机制允许对形状不同的数组进行计算。
(2)在广播中,较小的数组会自动扩展成较大数组的形状,以便进行元素级别的操作。
6.数组的排序和搜索
(1)可以使用sort()函数对数组进行排序。
(2)可以使用searchsorted()函数在有序数组中执行二分搜索。
7.数组的读写和文件操作
(1)可以使用NumPy的loadtxt()和savetxt()函数读写文本文件中的数组数据。
(2)可以使用NumPy的load()和save()函数读写二进制文件中的数组数据。
8.数组的线性代数运算
(1)NumPy提供了一些函数用于进行线性代数运算,如dot()、inv()、det()等。
(2)可以使用NumPy提供的线性代数模块(linalg)进行更复杂的线性代数操作。
9.数组的随机数生成
(1)NumPy的random模块提供了生成随机数的函数,如rand()、randn()、randint()等。
常用操作
创建数组
import numpy as np # 通过列表创建一维数组 arr1 = np.array([1, 2, 3, 4, 5]) # 通过元组创建二维数组 arr2 = np.array([(1, 2, 3), (4, 5, 6)]) # 通过范围创建一维数组 arr3 = np.arange(1, 6)
上述代码示例中,使用NumPy库的array函数和arange函数分别创建了一维和二维数组。
数组属性
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print("数组形状:", arr.shape) print("数组维度:", arr.ndim) print("数组大小:", arr.size)
上述代码示例中,使用NumPy数组的属性shape、ndim和size分别获取了数组的形状、维度和大小。
索引和切片
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print("第一个元素:", arr[0]) print("最后一个元素:", arr[-1]) print("切片取值:", arr[1:4])
上述代码示例中,使用NumPy数组的索引和切片操作,获取了数组中的元素和部分元素。
数组运算
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 数组加法 arr3 = arr1 + arr2 # 数组乘法 arr4 = arr1 * arr2 # 数组平方 arr5 = arr1 ** 2 print("数组加法结果:", arr3) print("数组乘法结果:", arr4) print("数组平方结果:", arr5)
上述代码示例中,使用NumPy数组进行了加法、乘法和平方运算,得到了对应的结果数组。
数组重塑
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) # 重塑为二维数组 arr_reshape = arr.reshape(2, 3) print("重塑后的数组:\n", arr_reshape)
上述代码示例中,使用NumPy数组的reshape方法将一维数组重塑为二维数组。