tags:
第四章 NumPy基础:数组和矢量计算
通用函数:快速的元素级数组函数
通用函数:快速的元素级数组函数
通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。
一元(unary)ufunc:
arr=np.arange(10) arr Out[5]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) np.sqrt(arr)#根号 Out[6]: array([ 0. , 1. , 1.41421356, 1.73205081, 2. , 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ]) np.exp(arr)#e^x Out[7]: 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])
另外一些(如add或者maximum接受2个数组(因此也叫二元(binary)ufunc),并返回一个结果数组:
x=randn(8) y=randn(8) x Out[10]: array([ 0.55104656, -0.70358303, 0.29153702, -0.25088748, 0.51501236, -0.00691815, 0.45884698, -0.27609025]) y Out[11]: array([ 0.10506643, -0.22471682, -1.4625159 , -0.83227315, 1.14981524, -1.02180453, 0.08551423, 1.28584017]) np.maximum(x,y)#元素最大值Out[12]: array([ 0.55104656, -0.22471682, 0.29153702, -0.25088748, 1.14981524, -0.00691815, 0.45884698, 1.28584017]) arr=randn(7)*5np.modf(arr)#Python内置函数divmod的矢量化版本,用于浮点数数组的小数和帧数部分。Out[14]: (array([ 0.18968524, 0.67265347, -0.53499458, 0.70031969, 0.90946035, 0.30079732, -0.50185024]), array([ 8., 1., -8., 0., 7., 0., -0.])) arr Out[15]: array([ 8.18968524, 1.67265347, -8.53499458, 0.70031969, 7.90946035, 0.30079732, -0.50185024])
函数 | 说明 |
---|---|
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 | 执行元素级的真值逻辑 |
作者:33jubi
链接:https://www.jianshu.com/p/e37b210661e5