zoukankan      html  css  js  c++  java
  • 1-Numpy的通用函数(ufunc)

    一、numpy“通用函数”(ufunc)包括以下几种:

    1. 元素级函数(一元函数):对数组中的每个元素进行运算
    2. 数组级函数:统计函数,像聚合函数(例如:求和、求平均)
    3. 矩阵运算
    4. 随机生成函数
    常用一元通用函数、数组级函数
    函数名 作用 例子 结果

    np.abs()、sum()、mean()

    std()、var()

    计算绝对值、求和、求平均值

    求标准差、方差

    arr = np.array([1,2,-3,-4,5])

    np.abs(arr)

    array([1, 2, 3, 4, 5])

    np.min()、max()、

    argmin ()、argmax()

    最小值、最大值、

    最小值索引、最大值索引

    arr = np.array([1.1,2.2,-3.3])
    np.argmin(arrr)

    2
    np.square() 计算各元素的平方

    arr = np.array([1,2,-3,-4,5])

    np.square(arr)

    array([ 1,  4,  9, 16, 25], dtype=int32)
     np.sqrt() 计算各元素的平方根 

    arr = np.array([1,2,4,5])

    np.sqrt(arr)

    array([1.        , 1.41421356, 2.        , 2.23606798])
     np.exp() 计算各元素以e为底的指数(ex) 

    arr = np.array([1,2,4,5]) 

    np.exp(arr)

     array([  2.71828183,   7.3890561 ,  54.59815003, 148.4131591 ])

     np.log()、

    log10()、log2()

     计算以e、10、2为底的对数 arr = np.array([10,100,1000])
    np.log10(arr)
     array([1., 2., 3.])
     np.sign()

     返回各元素的正负号:

    1(正数)、0(零)、-1(负数)

     arr = np.array([1,2,-3,-4,5,0])

     np.sign(arr)

     array([ 1,  1, -1, -1,  1,  0])
     np.sort()

    对数组进行排序(默认升序) 

    多维数组可以在单个轴上进行排序

     arr = np.array([1,2,-3,-4,5,0])

     np.sort(arr)

     array([-4, -3,  0,  1,  2,  5])
     np.unique()

    去重--->结果默认升序排列

    同python中的集合set() 

    arr = np.array([1,2,-3,2,1,0])

    arr.unique()

     array([-3,  0,  1,  2])
     np.ceil()  向上取整 arr = np.array([1.1,2.2,-3.3])
    np.ceil(arr)
     array([ 2.,  3., -3.])
     floor() 向下取整 arr = np.array([1.1,2.2,-3.3])
    np.floor(arr)
     array([ 1.,  2., -4.])
     np.rint() 四舍五入  arr = np.array([1.1,2.2,-3.3])
    np.rint(arr)
     array([ 1.,  2., -3.])
     np.modf() 小数和整数分离  arr = np.array([1.1,2.2,-3.3])
    np.modf(arr)
     (array([ 0.1,  0.2, -0.3]), array([ 1.,  2., -3.]))
    np.sin()、cos()、tan() 正弦、余弦、正切 同上  
    np.cumsum() 求数组元素累计和 arr = np.array([1,2,3])
    np.cumsum(arr)
    array([1, 3, 6], dtype=int32)
    np.cumprod() 求数组元素的累积积 arr = np.array([1,2,3])
    np.cumprod(arr)
    array([1, 2, 6], dtype=int32)

     二、numpy.linalg模块包括许多矩阵运算

    常用的有:

    函数名 作用 例子 结果
    np.diag()

    返回矩阵的主对角线元素,

    若输入一维数组则返回对角矩阵

    arr=np.array([[1,2,3],[2,2,3],[3,5,1]])
    np.diag(arr)
    array([1, 2, 1])
    np.trace() 计算对角线元素之和 np.trace(arr) 4
    np.linalg.det() 计算矩阵的行列式 np.linalg.det(arr) 12.999999999999995
    np.linalg.inv() 计算矩阵的逆 np.linalg.inv(arr) array([[-1.00000000e+00,  1.00000000e+00, -9.25185854e-18],
           [ 5.38461538e-01, -6.15384615e-01,  2.30769231e-01],
           [ 3.07692308e-01,  7.69230769e-02, -1.53846154e-01]])
    np.dot() 矩阵点乘 arr2 = np.array([[1,2],[2,3],[3,4]])
    np.dot(arr,arr2)
    array([[14, 20],
           [15, 22],
           [16, 25]])

     三、numpy.random模块包括许多生成随机数的函数

    常用的有:

    函数名 作用 例子 结果
    np.random.rand() 产生(0,1)均匀分布的随机数 arr = np.random.rand(2,2) array([[0.28576059, 0.87691219],
              [0.98174158, 0.37963998]])
    np.random.randint()

    从给定上下限范围内随机选取整数

    (默认是0-1之间)

    arr = np.random.randint(0,5,size=(2,2)) array([[4, 3],
           [2, 1]])
    np.random.binomial()

    产生二项分布的随机数,

    有两个参数:n、p;且可用size指定形状

    arr=np.random.binomial(20,0.3) 7
    np.random.normal()

    产生正态分布的随机数

    有两个参数:均值μ、标准差σ;且可用size指定形状

     

    arr = np.random.normal(0,0.4,size=(2,2))

     array([[ 0.19689244,  0.1862919 ],
           [ 0.5238639 ,  0.22638041]])
    np.random.randn()

    产生标准正态分布的随机数

     即均值μ=0、标准差σ=1

     arr = np.random.randn(2,3)  array([[ 0.25079709, -0.35966478, -1.28589538],
           [-1.02478972, -0.2292332 , -1.40625537]])
    np.random.seed()

    确定随机数生成的种子,让生成随机数的过程可重现(不设置seed时,每次生成的随机数将不同)

    np.random.seed(5)
    np.random.rand(2,2)

    np.random.seed(5)
    np.random.rand(2,3)

    array([[0.22199317, 0.87073231],
           [0.20671916, 0.91861091]])

    array([[0.22199317, 0.87073231, 0.20671916],
           [0.91861091, 0.48841119, 0.61174386]])

  • 相关阅读:
    如何将网格式报表打印成其它样式
    拥有与实力不相称的脾气是种灾难——北漂18年(23)
    8.8.1 Optimizing Queries with EXPLAIN
    mysql 没有rowid 怎么实现根据rowid回表呢?
    secondary index
    8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
    mysql 中key 指的是索引
    8.5.4 Optimizing InnoDB Redo Logging 优化InnoDB Redo 日志
    8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务
    8.5.1 Optimizing Storage Layout for InnoDB Tables InnoDB表的存储布局优化
  • 原文地址:https://www.cnblogs.com/Cheryol/p/13368011.html
Copyright © 2011-2022 走看看