numpy通用函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy通用函数相关的知识,希望对你有一定的参考价值。

参考技术A

函数 描述
np.abs 绝对值
np.sqrt 开根
np.square 平方
np.exp 计算指数(e^x)
np.log,np.log10,np.log2,np.log1p 求以e为底,以10为低,以2为低,以(1+x)为底的对数
np.ceil 向上取整,比如5.1会变成6,-6.9会变成-6
np.floor 向下取整,比如5.9会变成5,-6.1会变成-7
np.rint,np.round 四舍六入五成偶
np.modf 将整数和小数分隔开来形成两个数组
np.isnan 判断是否是nan
np.isinf 判断是否是inf
np.cos,np.cosh,np.sin,np.sinh,np.tan,np.tanh 三角函数

有两个自变量的函数
函数 描述
np.add 加法运算(即1+1=2),相当于+
np.subtract 减法运算(即3-2=1),相当于-
np.negative 负数运算(即-2),相当于加个负号
np.multiply 乘法运算(即2 3=6),相当于
np.divide 除法运算(即3/2=1.5),相当于/
np.floor_divide 取整运算,相当于//
np.mod 取余运算,相当于%
greater,greater_equal,less,less_equal,equal,not_equal >,>=,<,<=,=,!=的函数表达式
logical_and &的函数表达式
logical_or \\

上述inf代表无穷数,以下是nan和inf表述

nan与inf介绍
nan:not a number 表示不是一个数字,属于浮点类。
inf:np.inf 表示正无穷,-np.inf表示负无穷,属于浮点类。
NaN特点
nan与inf都是float类型

两个nan是不相等的np.nan == np.nan # False
np.nan与任何数值计算都是nan
np.nan与任何值计算都是nan所以在运算时,会带来较大的误差。一般我们都会将其处理掉。

如何处理nan
直接删除缺失值所在行,但是当数据量较小时,这样处理会有影响整体的数据。更优雅的做法,是当求和时,将np.nan处理为0;当求均值时,将np.nan处理为非nan的均值。

方法 描述
sum 沿着轴向计算所有元素的累和,0长度的数组,累和为0
mean 数学平均,0长度的数组平均值为NaN
max,min 最大值和最小值
argmax,argmin 最大值和最小值的位置
std,var 标准差和方差
ptp 极值
cumsum 从0开始元素累积和
median 中值

索引变成序列,按序列标号序列进行排序

numpy的通用函数:快速的元素级数组函数

通用函数(ufunc)是对ndarray中的数据执行元素级运算的函数。可看作简单函数的矢量化包装。

 

一元ufunc

sqrt对数组中的所有元素开平方

exp对数组中的所有元素求指数

In [93]: arr = np.arange(10)

In [94]: np.sqrt(arr)
Out[94]:
array([0.        , 1.        , 1.41421356, 1.73205081, 2.        ,
       2.23606798, 2.44948974, 2.64575131, 2.82842712, 3.        ])

In [95]: np.exp(arr)#exp是求以e(常数2.718281)为底的arr[index]为幂的指数
Out[95]:
array([1.00000000e+00, 2.71828183e+00, 7.38905610e+00, 2.00855369e+01,
       5.45981500e+01, 1.48413159e+02, 4.03428793e+02, 1.09663316e+03,
       2.98095799e+03, 8.10308393e+03])

二元ufunc

maximum 比较多个数组相同位置的元素,取大的值。注意,相互比较的数组shape必须一致

In [108]: x = np.random.randn(8)

In [109]: y = np.random.randn(8)

In [110]: z = np.random.randn(8)

In [111]: np.maximum(x,y)
Out[111]:
array([-0.01345165,  1.2966861 ,  1.92527939,  0.67587486, -0.51879301,
        0.03009451,  1.06056746, -0.27034234])

In [112]: np.maximum(x,y,z)
Out[112]:
array([-0.01345165,  1.2966861 ,  1.92527939,  0.67587486, -0.51879301,
        0.03009451,  1.06056746, -0.27034234])

 

minimum 

modf 分离整数和小数

In [100]: arr = np.random.randn(7)*5
In [103]: np.modf(arr)
Out[103]:
(array([ 0.57608342,  0.6771948 , -0.18724925, -0.21329855, -0.28322408, 0.87645773, -0.89368417]),
 array([ 1.,  3., -0., -2., -4.,  0., -2.]))

 

下边将会给出两个通用函数表格,一元ufunc和二元ufunc

函数说明
abs、fabs 计算整数、浮点数或复数的绝对值。对应非复数,可以使用更快的fabs
sqrt 计算各元素平方根,相当于array * * 0.5
square 计算各元素平方,相当于array * * 2
exp 计算各元素的指数
log、log10、log2、log1p 分别以自然对数(底数e)、10、2、(1+x)的对数
sign 计算各元素的正负号:1(正数)、0(零)、-1(负数)
ceil 计算各元素的ceiling值,即大于等于该值的最小整数
floor 计算各元素的floor值,即小于等于该值的最大正数
rint 将各元素值四舍五入到最接近的整数,保留dtype
modf 将数组的小数和整数部分已两个独立数组的形式返回
isnan 返回一个表示“哪些是NAN”的布尔型数组
isfinite、isinf 返回一个表示“哪些是finite、inf”的布尔型数组
cos、cosh、sin、sinh、tan、tanh 普通型和双曲线三角函数
arccos、arccosh、arcsin、arcsinh、arctan、arctanh 反三角函数
logical_not 计算各元素not x的真值,相当于-arr
函数说明
add 将数组中对应的元素相加
subtract 从第一个数组中的元素减去第二个数组中的元素
multiply 数组元素相乘
divide、floor_dixide 除法、向下圆整除法(丢弃余数)
power 对第一个数组中元素A,根据第二个数组中的相应位置元素B,计算A^B
maximum、fmax 元素级的最大值计算,fmax将忽略NaN
minimum、fmin 元素级的最小值计算,fmin将忽略NaN
mod 元素级的求模计算,(除法的余数)
greater、greater_equal、less、less_equal、equal、not_equal 执行元素级的比较运算,最终产生布尔型数组。相当于中缀运算符>、>=、<、<=、==、!=
logical_and、logical_or、logical_xor 执行元素级的真值逻辑

以上是关于numpy通用函数的主要内容,如果未能解决你的问题,请参考以下文章

numpy通用函数

numpy的通用函数

NumPy 学习: 通用函数

使用通用函数的 Python numpy 网格转换

numpy的通用函数:快速的元素级数组函数

学习通用函数:快速的元素级数组函数Numpy