Python NumPy 科学计算的基础库
更新时间:2023-07-09NumPy介绍
NumPy是一个基于Python语言的科学计算库,通过使用数组(numPy.array)来替代Python自身的数组(list和tuple),NumPy提供矩阵运算,处理大型多维数组以及各类数学函数等,为科学计算提供了高效而灵活的支持。
import numpy as np
list1 = [1, 2, 3]
np_array = np.array(list1)
print(np_array)
上述代码中我们分别定义了一个Python List 和一个NumPy的数组,这个NumPy数组可以比Python List更加高效地处理矩阵运算、数组运算等运算操作,可以看出NumPy的操作类似于MATLAB
NumPy数组创建和基本操作
NumPy数组有多重创建方式,我们可以通过以下方式创建
'''通过列表创建NumPy数组'''
import numpy as np
list1 = [1, 2, 3]
np_array = np.array(list1)
'''zeros 创建值全为0的数组'''
arr_zeros = np.zeros(5)
'''ones 创建值全为1的数组'''
arr_ones = np.ones(5)
'''更高级方法:使用arange,linspace,logspace'''
arr_arange = np.arange(1, 10, 2) # 类似range
arr_linspace = np.linspace(1, 10, 4) # 输出4个等距数字
arr_logspace = np.logspace(1, 4, 4) # 输出对数等白比例
NumPy数组运算
NumPy数组提供多种数值计算和运算,接下来介绍一些常用的方法,如求和、求均值、统计运算等。
'''创建两个NumPy数组'''
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.arange(5)
'''两个数组加减乘除操作'''
result1 = a - b
result2 = b**2
result3 = np.sin(a)
result4 = a<3
'''数组间的乘法运用dot'''
arr_1 = np.array([[1,2],[3,4]])
arr_2 = np.array([[5,6],[7,8]])
result5 = np.dot(arr_1, arr_2)
'''数组的统计运算'''
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
result6 = np.sum(arr) # 所有数字的和
result7 = np.sum(arr, axis=0) # 以列为单位,分别计算每列的和
result8 = np.sum(arr, axis=1) # 以行为单位,分别计算每行的和
NumPy高级操作
NumPy还提供了一些高级操作,如矩阵的逆运算、求解线性方程、计算特征值等,这些操作都需要用到线性代数的知识。
'''求逆矩阵'''
arr = np.array([[2,3], [4,5]])
arr_inv = np.linalg.inv(arr)
'''解线性方程'''
a = np.array([[2, 3], [4, 5]])
b = np.array([1, 2])
result1 = np.linalg.solve(a, b)
'''计算特征值'''
arr = np.array([[1, 2], [3, 4]])
result2 = np.linalg.eig(arr)