Python中的通函数numpy.ufunc详解
什么是ufunc?
ufunc是universal function的缩写,翻译过来是“通用函数”。它是一个能够对ndarray执行元素级别操作并产生新ndarray的函数。简而言之,它就是numpy提供的一组对于ndarray中元素进行逐元素操作的函数。
ufunc的功能和分类
ufunc的作用是对ndarray的元素执行函数操作。常见的ufunc有三种类型:
-
一元ufunc:对ndarray的每个元素进行操作的函数,例如对ndarray中的每个元素开方或求余数。
-
二元ufunc:对ndarray的两个对应的元素进行操作的函数,例如两个ndarray进行相加或者相乘。
-
比较ufunc:对ndarray的两个元素进行比较,例如比较两个ndarray是否相等或者大小比较。
ufunc函数的通用参数
在介绍不同类型的ufunc之前,我们先了解一下ufunc的常见参数。
参数名称 | 参数类型 | 说明 |
---|---|---|
x | ndarray或标量 | 输入的数据 |
out | ndarray, optional | 输出数组,结果将被放在这个数组中。 |
where | bool数组, optional | True表示对应输出数组的位置计算,False表示对应输出数组的位置不计算。 |
一元ufunc
常见一元ufunc
常见的一元ufunc有很多,此处我们只介绍部分代表性的函数。它们的功能分别是:
函数 | 说明 |
---|---|
abs |
计算数组各元素的绝对值 |
sqrt |
求各元素的平方根 |
exp |
计算数组各元素的指数值 |
log |
计算各元素的自然对数 |
log2 |
计算各元素的2为底的对数值 |
log10 |
计算各元素的10为底的对数值 |
sin |
计算各元素的正弦值 |
cos |
计算各元素的余弦值 |
tan |
计算各元素的正切值 |
示例
我们来看一下如何使用一元ufunc。
import numpy as np
a = np.array([-1, 2, 3, -4, 5])
print("原数组:", a)
# 以abs函数为例
b = np.abs(a)
print("执行abs函数后的结果:", b)
输出结果如下:
原数组: [-1 2 3 -4 5]
执行abs函数后的结果: [1 2 3 4 5]
二元ufunc
常见二元ufunc
常见的二元ufunc有很多,此处我们只介绍部分代表性的函数。它们的功能分别是:
函数 | 说明 |
---|---|
add |
数组相加 |
subtract |
数组相减 |
multiply |
数组相乘 |
divide |
数组相除 |
power |
第一个数组的元素作为底数,第二个数组的元素作为指数求幂 |
maximum |
求两个数组中对应元素的最大值 |
minimum |
求两个数组中对应元素的最小值 |
示例
我们来看一下如何使用二元ufunc。
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([9, 8, 7, 6])
print("第一个数组:", a)
print("第二个数组:", b)
# 以add函数为例
c = np.add(a, b)
print("执行add函数后的结果:", c)
输出结果如下:
第一个数组: [1 2 3 4]
第二个数组: [9 8 7 6]
执行add函数后的结果: [10 10 10 10]
比较ufunc
常见的比较ufunc有两个,分别是:
函数 | 说明 |
---|---|
equal |
判断两个数组中对应元素是否相等 |
not_equal |
判断两个数组中对应元素是否不等 |
比较ufunc会返回一个bool类型的数组,数组中的每个元素代表着对应元素是否满足比较运算的条件。
示例
我们来看一下如何使用比较ufunc。
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([3, 2, 3, 6])
print("第一个数组:", a)
print("第二个数组:", b)
# 以equal函数为例
c = np.equal(a, b)
print("执行equal函数后的结果:", c)
输出结果如下:
第一个数组: [1 2 3 4]
第二个数组: [3 2 3 6]
执行equal函数后的结果: [False True True False]
小结
- ufunc是numpy提供的一组能够对ndarray中元素执行逐元素操作并产生新ndarray的函数。
- ufunc分三种类型:一元ufunc、二元ufunc、比较ufunc。
- 常见的ufunc有很多,包含绝对值、平方根、指数值、正弦值、相加、相减、相乘、相除、求幂、取最大值和最小值、判断相等和不等等。
- ufunc的常见参数包括x、out和where参数。其中x表示输入的数组或标量,out表示输出的数组,where表示计算位置的bool数组。
- ufunc是numpy中非常常用的工具函数,对于对ndarray元素进行逐个操作的任务非常方便快捷。在实际编程中可以多加应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中的通函数numpy.ufunc详解 - Python技术站