Python主要是依靠众多的第三方库来增强它的数据处理能力的。常用的是Numpy库,Scipy库、Matplotlib库、Pandas库、Scikit-Learn库等。
常规版本的python需要在安装完成后另外下载相应的第三方库来安装库文件。而若安装的是Anaconda版本的Python,则不需要一个一个安装第三方库,可能已经同时安装了这些库。
Anaconda是专门应用于科学计算的Python版本。
Numpy库:表达N维数组的最基本的库。
Numpy库是专门为应用于严格的数据处理开发的,它提供了一个非常强大的N维数组对象array和实用的线性代数、傅里叶变换和随机数生成函数,可以存储和处理大型的矩阵,Scipy,matplotlib,pandas库等均依赖于它。
① 安装Numpy库:pip install numpy ,集成安装方法(anaconda)或者文件安装方法(先从UCI页面搜索库,下载对应版本的文件,使用 pip install <文件名>进行安装)
② 多维数组:用array函数创建数组,array函数接收一切序列类型的对象(list,tuple,其他数组) import numpy as np
A=np.array(列表、元组或数组)
创建特殊函数:import numpy as np
B=np.ones(n,m),C=np.zeros(n,m) ,I=np.eye/identify(n) 等
SciPy库:提供了真正的矩阵,以及基于矩运算的对象和函数,Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信息处理和图像处理、常微分方程求解和其他科学和工程常用的计算。
注意:Scipy库依赖于Numpy库,需先安装Numpy库
例:使用Scipy求解线性方程组的方法:
import scipy
from scipy import linalg
a=scipy.mat('[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6]')
b=scipy.mat('[8;9;-5;0]')
solve=linalg.solve(a,b)
print(solve) #运行结果输出值矩阵
[ [3.]
[-4.]
[-1.]
[1.] ]
该方程的另一解为:使用LU求解多个线性方程
from numpy import *
import scipy.linalg as s1
A=array([[2,1,-5,1],[1,-3,0,-6],[0,2,-1,2],[1,4,-7,6]])
b=array([8,9,-5,0])
bi=b.reshape(-1,1)
[LU,piv]=s1.lu_factor(A)
print(LU,piv)
xi=s1.lu_solve((LU,piv),bi)
print(xi)
#得到运行结果:[[ 2. 1. -5. 1. ]
[ 0.5 -3.5 2.5 -6.5 ]
[ 0.5 -1. -2. -1. ]
[ 0. -0.57142857 -0.21428571 -1.92857143]] [0 1 3 3]
[[ 3.]
[-4.]
[-1.]
[ 1.]]
在Scipy 中,分解LU的方法有两种:1.标准方法是scipy.linalg.lu 该方法返回三个矩阵L,U,P。
2.方法lu_factor与lu_solve结合起来使用,L和U一起存储在n*n的数组中,存储序列矩阵P的信息只需要一个n整数向量即轴向量来完成。
3.Matplotlib库:是python的一个2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。应用: 使用Matplotlib可以实现数据的可视化
例1:使用Matplotlib进行画图的一些基本代码:
iimport matplotlib.pyplot as plt
import numpy as np