一、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()

 

posted on 2020-05-06 20:13  叫你一声你敢应吗  阅读(90)  评论(0编辑  收藏  举报