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]])

  • 相关阅读:
    2所非211院校挺进全球高校600强,甩开一众985 | 泰晤士世界大学排行榜出炉
    深度强化学习专栏(三)
    PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型
    PyTorch专栏(六): 混合前端的seq2seq模型部署
    3分钟了解GPT Bert与XLNet的差异
    PyTorch专栏(五):迁移学习
    NLPer,你知道最近很火的自然语言处理库么?
    E
    网络流 I
    D
  • 原文地址:https://www.cnblogs.com/Cheryol/p/13368011.html
Copyright © 2011-2022 走看看