机器学习基础:numpy,matplotlib基础操作

97 阅读3分钟

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

image.png


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

image.png


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

image.png

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

image.png