• Numpy 数值/数组计算


    import numpy as np
    

    数组 array的创建

    功能 输入 输出
    创建一维数组 np.array([1,2,3],dtype=float) array([1., 2., 3.])
    创建二维数组 np.array([[1,2,3],[3,5,1]],dtype=float) array([[1., 2., 3.],[3., 5., 1.]])
    步长为0.5的等差数列 np.arange(0,3,1) array([0, 1, 2])
    总数为4个元素的等差数列 np.linspace(0,3,4) array([0., 1., 2., 3.])
    生成3个0~1之间的随机数 np.random.random(3) array([0.12275179, 0.47087408, 0.60714583])
    生成3个标准正态分布 np.random.randn(3) array([0.01709864, 0.67941382, 1.02026121])
    均值为0,标准差为1的正态分布 np.random.normal(loc=0,scale=1,size=3) array([0.84679958, 0.67801806, 0.53508453])
    连续复制数组元素1 np.repeat([1,2],2) array([1, 1, 2, 2])
    连续复制数组元素1 np.tile([1,2],2) array([1, 2, 1, 2])
    元素为1的数组 np.ones((2,3)) array([[1., 1., 1.],[1., 1., 1.]])
    元素为0的数组 np.zeros((2,3)) array([[0., 0., 0.],[0., 0., 0.]])

    数组的索引与变换

    a = np.arange(6).reshape(3,2)
    array([[0, 1],
           [2, 3],
           [4, 5]])
    
    b = np.reshape(a,(2,3))
    array([[0, 1, 2],
           [3, 4, 5]])
    

    数组的排序

    a = np.array([3,2,5,4])
    np.argsort(a)      #返回array([1, 0, 3, 2], dtype=int64)
    
    a[np.argsort(-a)]     
    # a = np.array([3,2,5,4])  分别对应 0,1,2,3
    # np.argsort(-a) = array([2, 3, 0, 1], dtype=int64)
    # a[np.argsort(-a)] = array([5, 4, 3, 2])
    
    np.sort(a)
    a.sort()
    #以上两句结果一样,array([2, 3, 4, 5])
    
    #原始:
    array([[1, 4, 3],
           [4, 5, 1],
           [2, 3, 2]])
    
    b.sort(axis=0)      #0按列,1按行
    #得到:
    array([[1, 3, 1],
           [2, 4, 2],
           [4, 5, 3]])
    
    b.sort(axis=1)      #0按列,1按行
    #得到:
    array([[1, 3, 4],
           [1, 4, 5],
           [2, 2, 3]])
    
    

    数组的组合

    #原始
    a = np.arange(6).reshape(3,2)
    array([[0, 1],
           [2, 3],
           [4, 5]])
    b = np.arange(9).reshape(3,3)
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    c = np.arange(6).reshape(2,3)
    array([[0, 1, 2],
           [3, 4, 5]])
    
    #以下开始尝试不同的组合
    
    #1 数组的水平组合(横着连接)
    np.hstack((a,b))
    np.concatenate((a,b),axis=1)
    np.append(a,b,axis=1)
    #以上三句等效,结果都是下面:
    array([[0, 1, 0, 1, 2],
           [2, 3, 3, 4, 5],
           [4, 5, 6, 7, 8]])
    
    #2 数组的垂直组合(竖着连接)
    np.vstack((b,c))
    np.concatenate((b,c),axis=0)
    np.append(b,c,axis=0)
    #以上三句等效,结果都是下面:
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [0, 1, 2],
           [3, 4, 5]])
    
    #3 其它组合方式
    np.append(a,b)
    array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8])
    
    np.append(a,c)
    array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5])
    
    

    数组的统计

    函数 功能 示例
    np.mean,np.average 计算平均值 ,加权平均值 np.mean(ary)
    np.var 计算方差 np.var(ary)
    np.std 计算标准差 np.std(ary)
    np.min,np.max 计算最小值/最大值 np.min(ary)
    np.argmin,np.argmax 返回最小值/最大值的索引 np.argmin(ary)
    np.ptp 计算全距,即最大值与最小值的差 np.ptp(ary)
    np.percentile 计算百分位在统计对象中的值 np.percentile(ary,90)
    np.median 计算统计对象的中值 np.median(ary)
    np.sum 计算统计对象的和 np.sum(ary)
  • 相关阅读:
    js实现: e.keycode详解
    jquery 无法设置selected属性,未指明的错误
    NHibernate配置引发的异常
    NetTiers模板属性说明
    Visual Studio 2010 安装“deffactory.dat can not open” 的解决办法
    wia Kodak 扫描仪应用 winform
    Tif文件转换成GIF列表
    JQuery ListBox间移动和ListBox内上下移动
    Mysql存储过程游标循环操作
    CentOS 5下freeswitch中集成使用ekho实现TTS功能一
  • 原文地址:https://www.cnblogs.com/treasury-manager/p/14249890.html
Copyright © 2020-2023  润新知