1:numpy基础操作
-
导入numpy
import numpy as np
-
初始化数组
#创建普通数组 nparr = np.array([i for i in range(10)]) #创建一个10容量的数组,初始值为0 nparr1 = np.zeros(10) #创建一个3行5列的初始值为0的二维数组 nparr2 = np.zeros((3,5)) #创建一个初始值为1的一维数组 nparr3 = np.ones(10) #创建一个3行5列初始值为1的二维数组 nparr4 = np.ones((3,5)) #创建一个指定值为666的3行5列的二维数组 nparr5 = np.full(shape = (3,5),fill_value = 666) nparr6 = np.full((3,5),666) #arange生成等步长的数组 nparr7 = np.arange(0,20,2) #linspace:从0到20(包括20)等长的截取10个点 nparr8 = np.linspace(0,20,10) 结果是:[ 0. 2.22222222 4.44444444 6.66666667 8.88888889 11.11111111 13.33333333 15.55555556 17.77777778 20. ] #随机数:从0到10随机生成一个数 nparr9 = np.random.randint(0,10) #从0到10,随机生成10个数 nparr10 = np.random.randint(0,10,size=10) #从0到10,随机生成一个3行5列的二维数组 nparr11 = np.random.randint(0,10,size=(3,5)) #随机生成一个3行5列的二维数组 nparr12 = np.random.randint((3,5))
-
查看数组类型
nparr.dtype()
-
数组或矩阵基础操作
x = np.arange(10) y = np.random.randint(0,10,size = (3,5)) #查看数组是几维数组 x.ndim y.ndim #元素个数 x.size y.size #数组访问 x[0] y[0][1] 等于 y[(0,1)] 等于 y[0,1] #切片操作 x[:5] y[:2,:3] #修改数组维度,将x从一维数组修改成2行5列的二维数组 x = x.reshape(2,5) #修改成2行 x = x.reshape(2,-1) #修改成5行 x = x.reshape(5,-1)
-
数组或矩阵合并与分割
x = np.array([1,2,3,4,5,6,7,8,9,10]) y = np.array([3,2,1]) x_1 = np.array([[1,2,3],[4,5,6]]) y_1 = np.array([[7,8,9],[10,11,12]]) #数组拼接 z = np.concatenate([x,y]) k = np.concatenate([x,y,z]) z_1 = np.concatenate([x_1,y_1]) #分割,对x在3,和7两个点进行分割成3段 x1,x2,x3 = np.split(x,[3,7]) #对x在2这个点进行分割成2段 x1,x2 = np.split(x,[2]) #对二维数组对行进行分割 x_a,x_b = np.split(x_1,[2]) #对列进行切割 x_a,x_b = np.split(x_1,[2],axis=1) #二维数组行进行分割 upper,lower = np.vsplit(x_1,[2]) #二维数组对列进行分割 left,right = np.hsplit(x_1,[2])
-
数组或矩阵的运算
#一维数组 x = np.array([1,2,3]) #二维数组 k = np.arange(10).reshape(2,5) #相乘 y = 2 * x #加法 y = 1 + x #减法 y = x - 1 #除法 y = x / 2 #取余 y = x % 2 #取绝对值 y = np.abs(x) #求3的x次方 y = np.power(3,x) #对数组元素求和 y = np.sum(x) #求一组数据的最小值 min = np.min(x) #最小值的索引 min_index = np.argmin(x) #求一组数据的最大值 max = np.max(x) #最大值的索引值 max_index = np.argmax(x) #求二维数组每一行的和 y = np.sum(k,axis=1) #求二维数组每一列的和 y = np.sum(k,axis=0) #平均值 y = np.mean(x) #中位数 y = np.median(x)
-
数组或矩阵的排序
x = np.random.randint(0,20,size = 10) k = np.random.randint(10,size=(4,4)) #排序 y = np.sort(x) #对每一行进行排序 k_1 = np.sort(k,axis=1)
2:matplotlib可视化基础
import numpy as np
from matplotlib import pyplot as plt
#初始化x,y
x = np.linspace(0,10,100)
y = np.sin(x)
#绘制折线图,设置x轴,y轴的值
plt.plot(x,y)
#图像展示
plt.show()
import numpy as np
from matplotlib import pyplot as plt
#初始化x,y
x = np.linspace(0,10,100)
y = np.sin(x)
k = np.cos(x)
#绘制两条折线图,设置x轴,y轴的值
plt.plot(x,y)
plt.plot(x,k)
#图像展示
plt.show()
import numpy as np
from matplotlib import pyplot as plt
#初始化x,y
x = np.linspace(0,10,100)
y = np.sin(x)
k = np.cos(x)
#绘制两条折线图,一条折线图,一条虚点图
plt.scatter(x,y)
plt.plot(x,k)
#图像展示
plt.show()
import numpy as np
from matplotlib import pyplot as plt
#初始化x,y
x = np.linspace(0,10,100)
y = np.sin(x)
#绘制折线图,设置x轴,y轴的值
plt.plot(x,y)
#设置标题,x轴名称,y轴名称
plt.title('x vs y')
plt.xlabel('x')
plt.ylabel('y')
#x轴范围
plt.xlim(-5,15)
#y轴的范围
plt.ylim(-5,20)
#图像展示
plt.show()