美文网首页我爱编程
Numpy速成手册(一)

Numpy速成手册(一)

作者: 正则表达式 | 来源:发表于2017-09-18 17:40 被阅读0次

    说明:个人学习记录,仅供参考。
    操作系统:window10 x64
    IDE:Pycharm 2017.2.2
    Python版本:3.6.2

    安装

    本次换一种安装方式:

    1、从https://pypi.python.org/pypi/numpy 处下载对应版本,我这里下载numpy-1.13.1-cp36-none-win_amd64.whl (md5, pgp),指的是64位操作系统,python3.6版本对应的numpy。注意版本一定要对应,不然会安装出错。

    2、切换到下载文件所在的目录,然后:

    pip3.6 install numpy-1.13.1-cp36-none-win_amd64.whl
    

    即可

    基本用法

    1、求矩阵元素最大值、最小值和平均值

    import numpy as np
    
    mat = np.array([
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ])
    # 最大元素的值 9
    print(mat.max())
    # 最小元素的值 1
    print(mat.min())
    # 平均值 5.0
    print(mat.mean())
    
    

    2、矩阵求和、行求和、列求和

    import numpy as np
    
    mat = np.array([
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ])
    # 元素总和 45
    print(mat.sum())
    # 元素行求和 [ 6 15 24]
    print(mat.sum(axis=1))
    # 元素列求和 [12 15 18]
    print(mat.sum(axis=0))
    
    

    3、元素相乘、矩阵相乘

    import numpy as np
    
    a = np.array([
        [1, 2],
        [3, 4]
    ])
    b = np.array([
        [5, 6],
        [7, 8]
    ])
    
    '''
    对应位置元素相乘,结果为:
    [[ 5 12]
     [21 32]]
    '''
    print(a * b)
    
    '''
    矩阵相乘,结果为:
    [[19 22]
     [43 50]]
    '''
    print(a.dot(b))
    # 矩阵相乘,同上
    print(np.dot(a, b))
    
    

    4、矩阵元素求平方、立方、开根号

    import numpy as np
    
    # 创建等差数组,类似于range
    a = np.arange(4)
    # [0 1 2 3]
    print(a)
    # 求矩阵各元素的平方 [0 1 4 9]
    print(a ** 2)
    # 求各元素的三次方
    print(a ** 3)
    # 各元素开根号 [ 0. 1. 1.41421356 1.73205081]
    print(np.sqrt(a))
    

    5、求元素e的n次幂

    import numpy as np
    
    # 创建等差数组,类似于range
    a = np.arange(3)
    # [0 1 2]
    print(a)
    # e的对应元素次幂
    # 自然对数的底数e是由一个重要极限给出的.我们定义:当x趋于无限时,lim(1+1/x)^x=e.e是一个无限不循环小数,其值约等于2.718281828…,
    print(np.exp(a))
    
    

    6、随机生成矩阵、向下取整

    import numpy as np
    
    # 生成3行4列的二维矩阵,取值为随机的浮点数,在半开区间 [0.0, 1.0)
    
    a = 10 * np.random.random((3, 4))
    
    # 乘10之后,得到类似如下的矩阵:
    '''
    [[ 4.12913155  3.74225311  5.99355689  6.46899251]
     [ 9.6168953   2.97444891  1.94358161  8.59825219]
     [ 2.55920397  0.88531021  1.97703553  3.21143099]]
    '''
    print(a)
    
    # floor 用于向下取整
    '''
    [[ 4.  3.  5.  6.]
     [ 9.  2.  1.  8.]
     [ 2.  0.  1.  3.]]
    '''
    print(np.floor(a))
    
    

    7、平坦化数组、矩阵转换

    import numpy as np
    
    # 生成3行4列的二维矩阵,取值为随机的浮点数,在半开区间 [0.0, 1.0)
    
    a = np.floor(10 * np.random.random((3, 4)))
    
    '''
    [[ 4.  1.  3.  4.]
     [ 0.  2.  4.  3.]
     [ 2.  0.  3.  4.]]
    '''
    print(a)
    
    # 平坦化数组,其实就是将二维数组转为一维数组,转换规则为从左到右从上到下
    b = np.ravel(a)
    '''
    [ 4.  1.  3.  4.  0.  2.  4.  3.  2.  0.  3.  4.]
    '''
    print(b)
    
    # 矩阵转换,其实就是将一维数组转为二维数组,当然也可以是一种二维转为另一种二维数组
    '''
    [[ 4.  1.]
     [ 3.  4.]
     [ 0.  2.]
     [ 4.  3.]
     [ 2.  0.]
     [ 3.  4.]]
    '''
    print(b.reshape(6, 2))
    
    

    相关文章

      网友评论

        本文标题:Numpy速成手册(一)

        本文链接:https://www.haomeiwen.com/subject/zkbbsxtx.html