1、通用函数
NumPy提供了一个简单灵活的接口来优化数据数组的计算。使NumPy变快的关键是利用向量化操作,通常在NumPy的通用函数中实现。可以通过简单对数组执行操作来实现,这里对数组的操作会被用于数组中的每一个元素,这种向量方法被用于将循环推送至NumPy之下的 编译层,这样会取得更快的执行效率。
NumPy实现的算术运算符
运算符 | 对应的通用函数 | 描述 |
+ | 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 | 地板除法运算(floor division,即3//2=1) |
** | np.power | 指数运算(即2**3=8) |
% | np.mod | 模/余数(即9%4=1) |
对于非常小的输入值可以保持较好的精度,当x的值很小时,以上函数给出的值比np.log和np.exp的计算更精确
print("exp(x) - 1 = ",np.expm1(x))
exp(x) - 1 = [0. 0.0010005 0.01005017 0.10517092]
print("log(1+x)=",np.log1p(x))
log(1+x)= [0. 0.0009995 0.00995033 0.09531018]
NumPy一元函数
对ndarray中的数据执行元素级运算的函数
函数 | 说明 |
np.abs(x) np.fabs(x) | 计算数组各元素的绝对值(计算整数、浮点数或复数的绝对值,对于非复数,可以使用更快的fabs) |
np.sqrt(x) | 计算数组各元素的平方根,相当于arr**0.5 |
np.square(x) | 计算数组各元素的平方,相当于arr**2 |
np.log(x) np.log10(x) np.log2(x) |
计算数组各元素的自然对数(e)、10底对数和2底对数 |
np.ceil(x) np.floor(x) | 计算数组各元素的ceiling值(表示不超过元素的整数值)或floor值(小于这个元素的最大整数值) |
np.rint(x) | 计算数组各元素的四舍五入值,保留dtype |
np.modf(x) | 将数组各元素的小数和整数部分以两个独立数组形式返回 |
np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x) |
计算数组各元素的普通型和双曲型三角函数 |
np.exp(x) | 计算数组各元素的指数值 e^x |
np.exp2(x) | 2^x |
np.power(3,x) | 3^x |
np.sign(x) | 计算数组各元素的符号值(正负号):1(+),0,-1(-) |
isnan | 返回一个表示“哪些值是NAN(这不是一个数字)”的布尔型数组 |
isfinite、isinf | 分别返回一个表示“哪些元素是有穷的(非inf,非NaN)”或“哪些元素是无穷的”的布尔型数组 |
arccos、arccosh、arcsin、 arcsinh、arctan、arctanh、 logical_not |
反三角函数、 计算各元素not x的真值,相当于-arr |
a = np.arange(24).reshape((2,3,4))
np.square(a) #数组本身并未发生改变,新生成了结果
Out[31]:
array([[[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]],
[[144, 169, 196, 225],
[256, 289, 324