Numpy通用函数,也可以称为ufunc,是一种在ndarray数据中进行逐个元素操作的函数。某些简单函数接受一个或多个标量数值,并产生一个或多个标量结果,而通用函数就是对这样简单函数的向量化封装:
1.一元通用函数
比如sqrt或exp举例:
arr = np.arange(10)
print(arr)
print(np.sqrt(arr))
print(np.exp(arr))
out:
一元通用函数
函数名 |
描述 |
abs、fabs |
逐个元素地计算整数、浮点数或复数地绝对值 |
sqrt |
计算每个元素的平方根(与arr ** 0.5相等) |
square |
计算每个元素地平方(与arr ** 2相等) |
exp |
计算每个元素的自然指数值e^x次方 |
log、log10、log2、log1p |
分别对应(自然指数(e为底)、对数10为底、对数2为底、log(1+x)) |
sign |
计算每个元素的符号值:1(正数)、0(0)、-1(负数) |
ceil |
计算每个元素的最高整数值(即大于等于给定数值的最小整数) |
floor |
计算每个元素的最小整数值(即小于等于给定整数的最大整数) |
rint |
将元素保留到整数位,并保持dtype |
modf |
分别将数组的小数部分与整数部分按数组形式返回 |
isnan |
返回数组元素是否是一个NaN(非数值),形式为布尔值数组 |
isfinite、isinf |
分别返回数组中的元素是否有限(非inf、非NaN)、是否无限的,形式为布尔值数组 |
cos、cish、sin、 |
常规三角函数及双曲三角函数 |
sinh、tan、tanh |
|
arccos、arccosh、arcsin、 |
反三角函数 |
arcsinh、arctan、arctanh |
|
logical_not |
对数组元素按位取反 |
2.二元通用函数
一些通用函数,比如add或maximum则会接收两个数组并返回一个数组作为结果,因此称为二元通用函数
返回一个数组的二元通用函数举例:
np.maximum逐个元素地将x和y中元素地最大值计算出来并返回
x = np.random.randn(8)
y = np.random.randn(8)
print(x)
print(y)
np.maximum(x, y)
out:
返回多个二元通用函数举例:
np.modf,是Python内建函数divmod地向量化版本,它返回了一个浮点值数组的小数部分和整数部分:
arr = np.random.randn(7) * 5
print(arr)
remainder, whole_part = np.modf(arr)
print(remainder)
print(whole_part)
out:
二元通用函数
函数名 |
描述 |
add |
将数组的对应元素相加 |
subtract |
在第二个数组中,将第一个数组中包含的元素去除 |
multiply |
将数组的对应元素相乘 |
divide,floor_divide |
除或整除(放弃余数) |
power |
将第二个数组的元素作为第一个数组对应元素的幂次方 |
maximum |
逐个元素计算最大值,fmax忽略NaN |
minimum |
逐个元素计算最小值,fmin忽略NaN |
mod |
按元素的求模计算(即求除法的余数) |
copysign |
将第一个数组的符号值改为第二个数组的符号值 |
greater,greater_equal,less, |
进行逐个元素的比较,返回布尔值数组(与数学操作符>,>=,<,<=,==,!=x效果一致) |
less_equal,equal,not_equal |
(接上) |
logical_and,logical_or |
进行逐个元素的逻辑操作(与逻辑操作符&、丨、^效果一致) |
logical_xor |
|
点击进行下一章节学习:使用数组面向数组编程(np.where,数学统计方法,布尔值数组方法,numpy实现排序)
或回到主目录:Numpy基础(基于jupyter notebook探索)