总有一些软件爱好者和开发者愿意贡献他们的劳动成果,这些贡献出来的python库实现了通用功能,比如统计计算,绘图等,越来越多的人贡献自己的知识完善这些库,以至于使python越来越强大。我们把这个群体叫做“开源社区”“开源贡献者”。
因此,我们需要导入第三方开发的python库,库也可叫做包,或者模块。
## math库用于数学运算
import math
math.sin(0)
math.sin(math.pi/2)
import math as m
m.sin(0)
from math import exp as e
e(2)
from math import *
exp(2)
sin(pi/2)
pip install ***
easy_install ***
conda install ***
# 安装numpy库
pip install numpy
Numpy专门用于数组和矩阵运算,它的高效主要因为两个因素:
(1) 用c语言编写,c语言接近系统底层,执行效率高
(2) numpy会安排一块地址连续的内存空间,内存寻址效率高
pip install numpy # 下载并安装numpy
conda install numpy # 同上
import numpy as np # 命名numpy为np
a = np.array([2,0,1,5]) # 创建数组
print(a) # 输出a
print(a[:3]) # 对a切片,输出前三个元素
print(a.min()) # 输出a中的最小元素
a.sort() # 对a的元素进行排序
b = np.array([[1,2,3],[4,5,6]]) # 创建二维数组
print(b*b) # 计算数组的元素平方
2. SciPy,
其实numpy的数组运算还不是真正的矩阵运算,因为如上面的例子,两个numpy数组相乘,其实只是对应元素乘积。SciPy则默认矩阵的运算规则。
# 求解非线性方程组
# 2x1 - x2^2 = 1
# x1^2 - x2 = 2
from scipy.optimize import fsolve
def f(x):
x1 = x[0]
x2 = x[1]
return [2*x1 - x2**2 - 1, x1**2 - x2 - 2]
result = fsolve(f, [1,1])
print(result)
# 定积分
from scipy import integrate
def g(x):
return (1-x**2)**0.5 # 被积函数 (1-x^2)^0.5
pi_2, err = integrate.quad(g, -1, 1) # pi_2是积分结果,err是误差
print(pi_2, pi_2*2)
3. Matplotlib,
matplotlib是python流行的可视化库。该库擅长二维图形。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,1000)
y = np.sin(x) + 1
z = np.cos(x**2) + 1
plt.figure(figsize = (8,4))
plt.plot(x,y,label = '$\sin x+1$', color = 'red', linewidth = 2)
plt.plot(x, z, 'b--', label = '$\cos x^2+1$')
plt.xlabel('Time(s)')
plt.ylabel('volt')
plt.title('A Simple Example')
plt.ylim(0,2.2)
plt.legend()
plt.show()
4. pandas,
pandas的命名来自于面板数据panel data和数据分析data analysis的组合。
AQR Capital Management公司在2008年开发成功,2009年开源。
pandas是数据分析的常用工具,但是我们未必能就记住所有命令,一旦有不清楚的功能,可以搜索百度或查阅相关工具书。
# 安装pandas
pip install pandas
# 安装excel读写工具库
pip install xlrd xlwt
# 使用pandas
import numpy as np
import pandas as pd
s = pd.Series([1,2,3], index = ['a','b','c']) # 序列s
d = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) # 数据框(表)d
d2 = pd.DataFrame(s) # 转换s为数据框,保存到d2
d.head()
d.describe()
d.to_excel('data.xls') # 保存为xls文件
pd.read_excel('data.xls') # 读取xls文件
d.to_csv('data.csv') # 保存为csv
pd.read_csv('data.csv') #读取csv
5. StatsModels,
statsmodel用于统计分析
# 进行时间序列的ADF平稳性检验
from statsmodels.tsa.stattools import adfuller as ADF # 导入ADF检验函数
import numpy as np
ADF(np.random.rand(100)) # 生成100个随机数数组,返回平稳性检验结果
6. scikit-learn,
简称sklearn,是机器学习的python库。大部分的机器学习任务都能用sklearn完成。
# 鸢尾花数据训练SVM模型
from sklearn import datasets # 导入sklearn自带数据集
iris = datasets.load_iris() # 鸢尾花数据集调用.load_iris(),保存为iris
print(iris.data.shape) # 查看数据集大小
print(iris['target_names'])
print(iris['feature_names'])
#(150, 4)
#['setosa' 'versicolor' 'virginica']
#['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
from sklearn import svm # 导入SVM随机向量机模型
clf = svm.LinearSVC() # 调用SVM线性分类器
clf.fit(iris.data, iris.target) # 训练模型
clf.predict([[5.0, 3.6, 1.3, 0.25]]) # 输入一组鸢尾花参数进行判断
#array([0])
7. keras
keras专门用于人工神经网络计算。现有的几个人工神经网络库有:pytorch,tensorflow,sklearn,theano
keras曾经与tensorflow合并,由于tensorflow库的模块调用比较混乱,导致了keras逐渐与tensorflow脱离依赖关系。
命名为:Python常用库_班级_学号_姓名.ipynb,可以发到我邮箱