一、Numpy库
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,但主要用于数组的运算。
导入模板:
import numpy as np
Numpy查看数组属性:
数组元素个数:
b.size
数组形状:
b.shape
数组维度:
b.ndim
数组元素类型:
b.dtype
快速创建N维数组的api函数:
(1)创建10行10列的数值为浮点1的矩阵:
array_one = np.ones([10, 10])
(2)创建10行10列的数值为浮点0的矩阵:
array_zero = np.zeros([10, 10])
numpy.random
np.random.rand(10, 10)
创建指定形状(示例为10行10列)的数组(范围在0至1之间)np.random.uniform(0, 100)
创建指定范围内的一个数np.random.randint(0, 100)
创建指定范围内的一个整数
numpy.empty
numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
numpy.empty(shape, dtype = float, order = 'C')
下面看看运用:
>>> np.array([1, 2, 3, 4, 5]) # 把列表转换为数组 array([1, 2, 3, 4, 5]) >>> np.array((1, 2, 3, 4, 5)) # 把元组转换成数组 array([1, 2, 3, 4, 5]) >>> np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组 array([[1, 2, 3], [4, 5, 6]])
>>> np.arange(8) # 类似于内置函数range() array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.linspace(0, 10, 11) # 等差数组,包含11个数
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点
array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 9.09090909])
>>> np.logspace(0, 100, 10) # 对数数组
array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100])
>>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5)
array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ])
>>> np.zeros(3) # 全0一维数组
array([ 0., 0., 0.])
>>> np.zeros((3,1)) # 全0二维数组,3行1列
array([[ 0.], [ 0.], [ 0.]])
>>> np.zeros((1,3)) # 全0二维数组,1行3列
array([[ 0., 0., 0.]])
二、Matplotlib库
Matplotlib 是python上的一个2D绘图库,它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。我们可以用它生成 绘图、直方图、功率谱、柱状图、误差图、散点图等 。
导入模板:
import matplotlib.pyplot as plt
散点图
plt.scatter(X, Y, s=75, c=T, alpha=.5)
其中X,Y分别为横纵坐标;s为点的大小(optional);c为颜色设置(optional);alpha为透明度设置(optional),是一个小于等于1的值
附加信息:
plt.xlim((-1, 1)) # 设置x轴范围为(-1,1) plt.ylim((-1, 1)) # 设置y轴范围为(-1,1) plt.legend() # 显示图例 plt.show() # 显示绘图
叫你一声你敢应吗 的成绩表:
import numpy as np import matplotlib.pyplot as plt #标签 labels = np.array(['第一周','第二周','第三周','第四周','第五周','第六周']) #数据个数 dataLenth = 6 #数据 data = np.array([46,100,93.3,100,107.5,60]) angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False) data = np.concatenate((data, [data[0]])) # 闭合 angles = np.concatenate((angles, [angles[0]])) # 闭合 fig = plt.figure() ax = fig.add_subplot(111, polar=True)# polar参数!! ax.plot(angles, data, 'bo-', linewidth=2)# 画线 ax.fill(angles, data, facecolor='b', alpha=0.55)# 填充 ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei") ax.set_title("林树锋(学号:2019310143043)成绩雷达图", va='bottom', fontproperties="SimHei") ax.set_rlim(0,110) ax.grid(True) plt.show()