天天看点

【python机器学习】常用库之科学计算包Numpy     科学计算包(Numpy)

        经过不断的使用与进化,Python产生了不少专门用于机器学习的程序库,我们在机器学习中经常需要用到的一些程序库,包括科学计算包(Numpy)、数据分析工具(Pandas)、数值计算包(Scipy)、绘图工具库(Matplotlib)、机器学习包(Scikit-learn)等,涵盖了在机器学习中数据导入、整理、数据处理、可视化、数值计算以及算法运行等方面。 通过掌握以上基本的程序库的应用,可以极大简化对数据的处理过程。

     科学计算包(Numpy)

       Numpy的核心是数组(Arrays),具体来说是多维数组(Ndarrays);Numpy就是对这些数组进行创建、删除、运算等操作的一个程序包。

       数组即一组数据,它把一系列具有相同类型的数据组织在一起,成为一个可操作的整体,但是两个数组内部的数据类型是不同的。

       Numpy的一个特点是把数据转换成数组(向量或矩阵)形式处理或运算。

1、创建数组

np.array( )          创建数组       

np.arange( )       创建等差数列

np.linspace( )     创建指定范围内均匀分布的数组

np.ones( )           创建元素都是1的数组

np.zeros( )          创建元素都是0的数组

np.eye( )             创建对角矩阵

np.random.random( )               创建随机数组  

2、查看数组的属性

.shape              数组的维度

.dtype               数组的数据类型

.size                 数组的元素个数

3、数组索引

arr[3]                获取数组中某个元素

arr[3:5]             切片

4、数组的统计分析

np.sort() 函数           对数组进行排序

np.sum()函数           对数组进行求和

np.mean()函数         对数组求均值

np.std()函数             对数组求标准差

5、数组的矩阵操作

np.mat("1 3 4;5 7 9; 3 5 6")      mat()函数创建矩阵

np.dot(arr,arr1)                         dot( )函数进行矩阵相乘

  • 创建数组np.array

    import numpy as np          #导入Numpy库
    array=np.array([1,2,3,4])   #创建一维数组
    print(array)                #打印数组
    array2=np.array([[2,4,6,7],[3,9,7,0],[2,8,5,9]])       #创建二维数组
    print(array2)                                          #打印数组
               
    [1 2 3 4]
    
    [[2 4 6 7]
     [3 9 7 0]
     [2 8 5 9]]
               
  •  查看array数组的属性

    print('数组维度为:',array2.shape)              #查看数组结构
    print('数组的数据类型为:',array2.dtype)         #查看数组的数据类型
    print('数组元素个数为:',array2.size)            #查看数组元素个数
               
    数组维度为: (3, 4)
    数组的数据类型为: int32
    数组元素个数为: 12
               
  • 创建数组的其他方式

    print(np.arange(8))        #np.arange()创建等差数列
    print(np.linspace(0,6,4))  #np.linspace()指定范围内均匀分布的数组
    print(np.zeros((2,3)))     #np.zeros()元素都是0的数组,2x3的矩阵
    print(np.ones((2,8)))      #np.ones()元素都是1的数组,2x8的矩阵
    print(np.eye(3))           #创建对角矩阵
    print(np.random.random(8)) #创建元素数为8的随机数组
               
    [0 1 2 3 4 5 6 7]
    
    [0. 2. 4. 6.]
    
    [[0. 0. 0.]
     [0. 0. 0.]]
    
    [[1. 1. 1. 1. 1. 1. 1. 1.]
     [1. 1. 1. 1. 1. 1. 1. 1.]]
    
    [[1. 0. 0.]
     [0. 1. 0.]
     [0. 0. 1.]]
    
    [0.88169518 0.48534047 0.03996798 0.86128575 0.58678112 0.48859591 0.5996858  0.7072107 ]
               
  • 基础的数据运算

    arr=np.array(np.arange(10))     #创建0-9之间的等差数据
    arr1=np.array(np.arange(1,11))  #创建1-10之间的等差数据
    print(arr*2)                     #数组乘法
    print(arr+arr1)                  #数组加法
               
    [ 0  2  4  6  8 10 12 14 16 18]
    [ 1  3  5  7  9 11 13 15 17 19]
               
  • 数组索引

    arr=np.arange(10)
    print(arr[6])            #获取数组中的第6个数
    print(arr[2:5])          #获取某个范围的元素,第3、4、5个元素
    arr[3:5]=111,112         #改变第4个元素为111,第5个元素为112
    print(arr)
    arr1=np.array([[1,2,3,4],[1,4,5,6],[3,5,6,7]])   #创建多维数组
    print(arr1)
    print(arr1[0,1:3])
               
    6
    
    [2 3 4]
    
    [  0   1   2 111 112   5   6   7   8   9]
    
    [[1 2 3 4]
     [1 4 5 6]
     [3 5 6 7]]
    
    [2 3]
               
  • 数组的统计分析

    arr=np.array([2,5,6,8,3])
    print(arr)
    print(np.sort(arr))         #sort()函数对数组进行排序
    print(np.sum(arr))          #sum()函数对数组进行求和
    print(np.mean(arr))         #mean()函数对数组求均值
    print(np.std(arr))          #std()函数对数组求标准差
               
    [2 5 6 8 3]
    [2 3 5 6 8]
    24
    4.8
    2.1354156504062622
               
  • 数组的矩阵操作

    arr=np.arange(3)
    matr1=np.mat("1 4 5;3 5 6;3 7 9")     #使用mat()函数创建矩阵
    print(arr)
    print(matr1)
    print(np.dot(arr,matr1))              #使用dot()函数进行arr和matr1矩阵之间的相乘
               
    [0 1 2]
    
    [[1 4 5]
     [3 5 6]
     [3 7 9]]
    
    [[ 9 19 24]]
               

继续阅读