c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python NumPy 科学计算的基础库

更新时间:2023-07-09

NumPy介绍

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)