zoukankan      html  css  js  c++  java
  • Numpy常用操作

          numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外,也针对数组运算提供大量的数学函数库。

    numpy常用的操作:

          ndarray.ndim:秩,即轴的数量或维度的数量

          ndarray.size:数组元素的总个数

          ndarray.dtype:ndarray对象的元素类型

          ndarray.itemsize:ndarray对象中每个元素的大小,以字节为单位

          ndarray.random:产生随机数

    import numpy as np
    a = np.random.rand(3,3) #随机生成一个3行3列的矩阵
    print(a.ndim) #输出矩阵的维度,结果为2
    print(a.dtype) #输出矩阵中元素的类型,结果为float64
    print(a.size) #输出矩阵中元素个数,结果为9

          shape:查看是一个几行几列的数组

          reshape:对数组形状进行改变

    import numpy as np
    a = np.array([[1,2,3],[4,5,6]]) #创建一个两行三列的矩阵
    np.shape(a) #查看矩阵a的形状
    np.reshape(a,[3,2]) #将矩阵a改为三行两列
    b = np.arange(12).reshape(3,4)

          创建数组的时候可以指定元素类型

    a = np.array([1,2,3],dtype=np.int)

          zeros创建全0的矩阵,ones创建全1的矩阵,eye创建单位矩阵

    import numpy as np
    a = np.zeros([3,3])
    b = np.ones([3,3],dtype=int)
    c = np.eye(3,3)

          linspace:在指定间隔内返回均匀的数字(即返回等差数组)

    import numpy as np
    np.linspace(1,10,10) #在1-10之间打印10个均匀的数
    np.linspace(1,10,10,endpoint=False,retstep=True) #在1-10之间打印10个均匀的数,不包括10,并且打印步长

          A*B:两个矩阵对应位置相乘,dot才是矩阵的乘法

    import numpy as np
    A = np.ones([3,3])
    B = np.eye(3,3)
    a = A*B
    b = np.dot(A,B)

          参数axis=1:对行进行操作,axis=0:对列进行操作

    import numpy as np
    a = np.arange(6).reshape(3,2)
    b = np.sum(a,axis=0) #对a矩阵的列求和
    c = np.sum(a,axis=1) #对a矩阵的行求和

          argmin:求最小值的索引,argmax:求最大值的索引,mean(average):求矩阵的平均值

    import numpy as np
    a = np.arange(2,14).reshape(3,4)
    print(np.argmin(a))
    print(np.argmax(a))
    print(np.mean(a))
    print(np.average(a))

          矩阵的合并:hstack(左右合并),vstack(上下合并)

    import numpy as np
    a = np.array([1,2,3])
    b = np.array([4,5,6])
    c = np.vstack((a,b))
    d = np.hstack((a,b))

           矩阵的拆分:vsplit(横向拆分),hsplit(纵向拆分)

    import numpy as np
    a = np.arange(12).reshape(3,4)
    b = np.vsplit(a,3) #将a矩阵按行拆分成3行
    c = np.hsplit(a,2) #将a矩阵按列拆分成2列

          numpy也可以采用索引取数据

    import numpy as np
    a = np.arange(3,15).reshape(3,4)
    print(a[2]) #取出索引为2的行的全部元素,即取第三行的全部元素
    print(a[1,1]) #取行、列索引都为1的元素,即二行二列的元素。也可以写成:print(a[1][1])

          矩阵的转置

    import numpy as np
    a = np.array([[1,2,3],[4,5,6]])
    b = np.transpose(a) #也可以写成:c = a.T
  • 相关阅读:
    【模板】Sparse-Table
    UVa 11235 Frequent values
    【模板】树状数组
    UVa 1428 Ping pong
    数学技巧
    UVa 11300 Spreading the Wealth
    UVa 11729 Commando War
    UVa 11292 Dragon of Loowater
    POJ 3627 Bookshelf
    POJ 1056 IMMEDIATE DECODABILITY
  • 原文地址:https://www.cnblogs.com/chenjin2018/p/13376383.html
Copyright © 2011-2022 走看看