zoukankan      html  css  js  c++  java
  • numpy基础--通用函数:快速的元素级数组函数

    以下代码的前提:import numpy as np

    通用函数(即ufunc)是一种对narray中的数组执行元素级运算的函数。可以看作简单函数(接受一个或多个标量值,并产生一个或多个标量值)的矢量化包装器。

    (1)一元ufunc(接受1个数组)

    1 >>> arr = np.arange(10)
    2 >>> np.sqrt(arr) 
    3 array([0.        , 1.        , 1.41421356, 1.73205081, 2.        ,
    4        2.23606798, 2.44948974, 2.64575131, 2.82842712, 3.        ])
    5 >>>
    6 >>> np.exp(arr)
    7 array([1.00000000e+00, 2.71828183e+00, 7.38905610e+00, 2.00855369e+01,
    8        5.45981500e+01, 1.48413159e+02, 4.03428793e+02, 1.09663316e+03,
    9        2.98095799e+03, 8.10308393e+03])

    (2)二元ufunc(接受2个数组)

     1 >>> x = np.random.randn(8) 
     2 >>> y = np.random.randn(8) 
     3 >>> x
     4 array([ 0.43266866,  1.69407984, -0.55230851,  0.5299432 ,  0.16398048,
     5        -0.85688016,  0.17670668,  0.27088301])
     6 >>> y
     7 array([-7.44071773e-01, -1.96733697e-01,  2.63125844e-01,  1.02443527e-03,
     8         1.43143711e+00,  4.07087722e-02,  3.69629757e-01,  8.49162829e-01])
     9 >>> np.maximum(x, y)
    10 array([0.43266866, 1.69407984, 0.26312584, 0.5299432 , 1.43143711,
    11        0.04070877, 0.36962976, 0.84916283])

    (3)有些ufunc可以返回多个数组,modfj就是python类似函数divmod的矢量化版本

    1 >>> arr = np.random.randn(7) * 5 
    2 >>> arr
    3 array([-5.13857878, -0.91271076,  3.55618943, -3.40179856, -7.32568638,
    4        -1.74803645,  3.1201454 ])
    5 >>> np.modf(arr)
    6 (array([-0.13857878, -0.91271076,  0.55618943, -0.40179856, -0.32568638,
    7        -0.74803645,  0.1201454 ]), array([-5., -0.,  3., -3., -7., -1.,  3.]))
    8 >>>

    下表是一元ufunc和二元ufunc的函数说明。

    一元ufunc

    函数

    说明

    abs、fabs

    计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs

    sqrt

    计算各元素的平方根,相当于arr ** 0.5

    square

    计算各元素的平方,相当于arr ** 2

    exp

    计算各元素的指数ex

    log、log10、log2、log1p

    分别为自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)

    sign

    计算各元素的正负号:1(正数)、0(零)、-1(负数)

    ceil

    计算各元素的ceiling值,即大于等于该值的最小整数

    floor

    计算各元素的floor值,即小于等于该值的最大整数

    rint

    将各元素值四舍五入到最接近的整数,保留dtype

    modf

    将数组的小数部分和整数部分以两个独立数组的形式返回

    isnan

    返回一个表示“哪些值是NaN(这不是一个数字)”的布尔型数组

    isfinite、isinf

    分别返回一个表示“哪些元素是有穷的(非inf,非NaN)”或“哪些元素是无穷的”的布尔型数组

    cos、cosh、sin、sinh、tan、tanh

    普通型和双曲型三角函数

    arccos、arccosh、arcsin、arcsinh、arctan、arctanch

    反三角函数

    logical_not

    计算各元素not x的真值,相当于~arr

    二元ufunc

    add

    将数组中对应元素相加

    subtract

    从第一个数组中减去第二个数组中的元素

    multiply

    数组元素相乘

    divide、floor_divide

    除法或向下圆整除法(丢弃余数)

    power

    对第一个数组中的元素A,根据第二个数组中的相应元素B,计算AB

    maximum、fmax

    元素级的最大值计算,fmax将忽略NaN

    minimum、fmin

    元素级的最小值计算,fmin将忽略NaN

    mod

    元素级的求模运算(除法的余数)

    copysign

    将第二个数组中的值的符号复制给第一个数组中的值

    greater、greater_equal、less、less_equal、equal、not_equal

    执行元素级的比较运算,最终产生布尔型数组。相当于中缀运算符>、>=、<、<=、==、!=

    logic_and、logic_or、logic_xor

    执行元素级的真值逻辑运算,相当于中缀运算符&、|、^

  • 相关阅读:
    Oracle TRCA 工具 说明
    Oracle TTS ORA39322: Cannot use transportable tablespace with different timezone version 说明
    Oracle 传输表空间(Transportable Tablespaces) 示例(二) 跨操作系统迁移表空间(endianness格式不同)
    易于在各手机平台移植的设计(转)
    Symbian 学习资源
    项目经理修炼手册
    ZIP 算法详解 (转!)
    google Android OS 学习资源、资料和笔记汇总(要看的)
    小白兔的求职遭遇
    数据结构和算法学习笔记(1)
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/12247810.html
Copyright © 2011-2022 走看看