📜  Numpy 数学函数

📅  最后修改于: 2020-04-19 11:24:52             🧑  作者: Mango

NumPy包含大量的各种数学运算。NumPy提供标准的三角函数,用于算术运算,处理复数的函数等。
NumPy具有标准三角函数,该函数返回给定角度的弧度的三角函数值。
numpy.sin(x [,out])= ufunc’sin’):此数学函数可帮助用户计算所有x(作为数组元素)的三角正弦值

# Python程序解释#sin()函数
import numpy as np
import math
in_array = [0, math.pi / 2, np.pi / 3, np.pi]
print ("输入数组 : \n", in_array)
Sin_Values = np.sin(in_array)
print ("\n正弦值 : \n", Sin_Values)

输出:

输入数组 :
 [0, 1.5707963267948966, 1.0471975511965976, 3.141592653589793]
正弦值 :
 [  0.00000000e+00   1.00000000e+00   8.66025404e-01   1.22464680e-16]

numpy.cos(x [,out])= ufunc’cos’):此数学函数可帮助用户计算所有x(作为数组元素)的三角余弦。

# Python程序解释cos()函数
import numpy as np
import math
in_array = [0, math.pi / 2, np.pi / 3, np.pi]
print ("输入数组 : \n", in_array)
cos_Values = np.cos(in_array)
print ("\n正弦值 : \n", cos_Values)
函数 描述
tan() 按元素计算切线。
arcsin() 按元素反正弦。
arccos() 三角反余弦,元素方式。
arctan() 三角逆切线,元素方向。
arctan2() x1 / x2的逐元素圆弧切线正确选择象限。
degrees() 将角度从弧度转换为度。
rad2deg() 将角度从弧度转换为度。
deg2rad 将角度从度转换为弧度。
radians() 将角度从度转换为弧度。
hypot() 给定直角三角形的“腿”,返回其斜边。
unwrap() 通过将值之间的增量更改为2 * pi补码来展开

双曲函数
numpy.sinh(x [,out])= ufunc’sin’)此数学函数可帮助用户计算所有x(作为数组元素)的双曲正弦值。
等同于1/2 * (np.exp(x) - np.exp(-x)) or -1j * np.sin(1j*x)

# Python3程序解释sinh()函数
import numpy as np
import math
in_array = [0, math.pi / 2, np.pi / 3, np.pi]
print ("输入数组 : \n", in_array)
Sinh_Values = np.sinh(in_array)
print ("\n正弦双曲值 : \n", Sinh_Values)

输出:

输入数组 :
 [0, 1.5707963267948966, 1.0471975511965976, 3.141592653589793]
正弦双曲值 :
 [  0.           2.3012989    1.24936705  11.54873936]

numpy.cosh(x [,out])= ufunc’cos’)此数学函数可帮助用户计算所有x(作为数组元素)的双曲余弦值。
等同于1/2 * (np.exp(x) - np.exp(-x))np.cos(1j*x)

# Python3程序解释cosh()函数
import numpy as np
import math
in_array = [0, math.pi / 2, np.pi / 3, np.pi]
print ("输入数组 : \n", in_array)
cosh_Values = np.cosh(in_array)
print ("\n余弦双曲值 : \n", cosh_Values)

输出:

输入数组 :
 [0, 1.5707963267948966, 1.0471975511965976, 3.141592653589793]
余弦双曲值 :
 [  1.           2.50917848   1.60028686  11.59195328]
函数 描述
tanh() 计算双曲正切元素。
arcsinh() 反双曲正弦元素。
arccosh() 反双曲余弦,逐元素。
arctanh() 逆双曲正切元素明智。

四舍五入函数:
numpy.around(arr,decimals= 0,out =None):此数学函数可帮助用户将数组元素平均舍入为给定的小数位数。

# Python程序解释around()函数
import numpy as np
in_array = [.5, 1.5, 2.5, 3.5, 4.5, 10.1]
print ("输入数组 : \n", in_array)
round_off_values = np.around(in_array)
print ("\n取整值 : \n", round_off_values)
in_array = [.53, 1.54, .71]
print ("\n输入数组 : \n", in_array)
round_off_values = np.around(in_array)
print ("\n取整值 : \n", round_off_values)
in_array = [.5538, 1.33354, .71445]
print ("\n输入数组 : \n", in_array)
round_off_values = np.around(in_array, decimals = 3)
print ("\n取整值 : \n", round_off_values)

输出:

输入数组 :
 [0.5, 1.5, 2.5, 3.5, 4.5, 10.1]
取整值 :
 [  0.   2.   2.   4.   4.  10.]
输入数组 :
 [0.53, 1.54, 0.71]
取整值 :
 [ 1.  2.  1.]
输入数组 :
 [0.5538, 1.33354, 0.71445]
取整值 :
 [ 0.554  1.334  0.714]

numpy.round_(arr,decimals = 0,out = None):此数学函数将数组四舍五入到给定的小数位数。

# Python程序解释round_()函数
import numpy as np
in_array = [.5, 1.5, 2.5, 3.5, 4.5, 10.1]
print ("输入数组 : \n", in_array)
round_off_values = np.round_(in_array)
print ("\n取整值 : \n", round_off_values)
in_array = [.53, 1.54, .71]
print ("\n输入数组 : \n", in_array)
round_off_values = np.round_(in_array)
print ("\n取整值 : \n", round_off_values)
in_array = [.5538, 1.33354, .71445]
print ("\n输入数组 : \n", in_array)
round_off_values = np.round_(in_array, decimals = 3)
print ("\n取整值 : \n", round_off_values)

输出:

输入数组 :
 [0.5, 1.5, 2.5, 3.5, 4.5, 10.1]
取整值 :
 [  0.   2.   2.   4.   4.  10.]
输入数组 :
 [0.53, 1.54, 0.71]
取整值 :
 [ 1.  2.  1.]
输入数组 :
 [0.5538, 1.33354, 0.71445]
取整值 :
 [ 0.554  1.334  0.714]
函数 描述
rint() 四舍五入为零。
fix() 四舍五入为零。
floor() 以元素为单位返回输入的底限。
ceil() 以元素为单位返回输入的上限。
trunc() 以元素为单位返回输入的截断值。

指数和对数函数:
numpy.exp(array, out = None, where = True, casting = ‘same_kind’, order = ‘K’, dtype = None):此数学函数可帮助用户计算元素中所有元素的指数输入数组。

# Python程序解释exp()函数
import numpy as np
in_array = [1, 3, 5]
print ("输入数组 : ", in_array)
out_array = np.exp(in_array)
print ("输出数组 : ", out_array)

输出:

输入数组 :  [1, 3, 5]
输出数组 :  [   2.71828183   20.08553692  148.4131591 ]

numpy.log(x [,out] = ufunc’log1p’):此数学函数可帮助用户计算 x的自然对数,其中x属于所有输入数组元素。
自然对数是 exp()倒数,因此log(exp(x)) = x。自然对数是以e为底的对数。

# Python程序解释log()函数
import numpy as np
in_array = [1, 3, 5, 2**8]
print ("输入数组 : ", in_array)
out_array = np.log(in_array)
print ("输出数组 : ", out_array)
print("\nnp.log(4**4) : ", np.log(4**4))
print("np.log(2**8) : ", np.log(2**8))

输出:

输入数组 :  [1, 3, 5, 256]
输出数组 :  [ 0.          1.09861229  1.60943791  5.54517744]
np.log(4**4) :  5.54517744448
np.log(2**8) :  5.54517744448
函数 描述
expm1() 为数组中的所有元素计算exp(x)– 1。
exp2() 为输入数组中的所有p计算2 ** p。
log10() 以元素为单位返回输入数组的以10为底的对数。
log2() x的以2为底的对数。
log1p() 返回元素加一个输入数组的自然对数。
logaddexp() 输入取幂之和的对数。
logaddexp2() 以2为底的输入的幂和的对数。

算术函数
numpy.reciprocal(x,/,out = None,*,where = True)此数学函数用于计算输入数组中所有元素的倒数。
注意:对于绝对值大于1的整数参数,由于Python处理整数除法的结果始终为零。对于整数零,结果为溢出

# Python3代码演示reciprocal()函数
# 导入numpy
import numpy as np
in_num = 2.0
print ("输入号码 : ", in_num)
out_num = np.reciprocal(in_num)
print ("输出编号 : ", out_num)

输出:

输入号码 :  2.0
输出编号 :  0.5

numpy.divide(arr1,arr2,out = None,where = True,cast =’same_kind’,order =’K’,dtype = None):第一个数组中的数组元素被第二个数组中的元素除。arr1和arr2必须具有相同的形状,并且arr2中的元素不能为零;否则会引发错误。

# Python程序解释Divide()函数
import numpy as np
# 输入数组
arr1 = [2, 27, 2, 21, 23]
arr2 = [2, 3, 4, 5, 6]
print ("arr1         : ", arr1)
print ("arr2         : ", arr2)
# 输出数组
out = np.divide(arr1, arr2)
print ("\n输出数组 : \n", out)

输出:

arr1         :  [2, 27, 2, 21, 23]
arr2         :  [2, 3, 4, 5, 6]
输出数组 :
 [ 1.          9.          0.5         4.2         3.83333333]
函数 描述
add() 按元素添加参数。
positive() 数值正数,逐元素。
negative() 数值为负,逐个元素。
multiply() 将参数逐元素相乘。
power() 第一个数组元素在元素方面从第二个数组提升为幂。
subtract() 从元素上减去参数。
true_divide() 返回按元素划分的输入的真实除法。
floor_divide() 返回小于或等于输入除法的最大整数。
float_power() 第一个数组元素在元素方面从第二个数组提升为幂。
mod() 返回元素的除法余数。
mod() 返回元素的除法余数。
divmod() 同时返回元素商和余数。

复数函数–
numpy.isreal(array):逐个元素测试是否为实数(不是无穷大还是不是Number),然后将结果作为布尔数组返回。

# Python程序说明numpy.isreal()方法
import numpy as np
print("是真实的 : ", np.isreal([1+1j, 0j]), "\n")
print("是真实的 : ", np.isreal([1, 0]), "\n")

输出:

是真实的 :  [False  True]
是真实的 :  [ True  True]

numpy.conj(x [,out] = ufunc’conjugate’):此函数可帮助用户对任何复数进行共轭。
复数的共轭可通过更改其虚部的符号来获得。如果复数为2 + 5j,则其共轭为2-5j。

# Python3代码演示conj()函数
# 导入numpy
import numpy as np
in_complx1 = 2+4j
out_complx1 = np.conj(in_complx1)
print ("输出共轭复数  2+4j : ", out_complx1)
in_complx2 =5-8j
out_complx2 = np.conj(in_complx2)
print ("输出共轭复数 5-8j: ", out_complx2)

输出:

输出共轭复数  2+4j :  (2-4j)
输出共轭复数 5-8j:  (5+8j)

特殊函数:
numpy.cbrt(arr,out = None,ufunc’cbrt’):此数学函数可帮助用户计算所有数组元素x的立方根。

# Python程序解释cbrt()函数
import numpy as np
arr1 = [1, 27000, 64, -1000]
print ("arr1的cbrt值 : \n", np.cbrt(arr1))
arr2 = [1024 ,-128]
print ("\narr2的cbrt值 : ", np.cbrt(arr2))

输出:

arr1的cbrt值 :
 [  1.  30.   4. -10.]
arr2的cbrt值 :  [ 10.0793684  -5.0396842]

numpy.clip():此函数用于剪辑(限制)数组中的值。
给定一个间隔,该间隔以外的值将被裁剪到间隔边缘。例如,如果指定间隔[0,1],则小于0的值将变为0,而大于1的值将变为1。

# Python3代码演示clip()函数
# 导入numpy
import numpy as np
in_array = [1, 2, 3, 4, 5, 6, 7, 8 ]
print ("输入数组 : ", in_array)
out_array = np.clip(in_array, a_min = 2, a_max = 6)
print ("输出数组 : ", out_array)

输出:

输入数组 :  [1, 2, 3, 4, 5, 6, 7, 8]
输出数组 :  [2 2 3 4 5 6 6 6]
函数 描述
convolve() 返回两个一维序列的离散线性卷积。
sqrt() 以元素为单位返回数组的非负平方根。
square() 返回输入的元素方平方。
absolute() 按元素计算绝对值。
fabs() 按元素计算绝对值。
sign() 返回数字符号的逐元素指示。
interp() 一维线性插值。
maximum() 数组元素的逐元素最大值。
minimum() 数组元素的按元素最小值。
real_if_close() 如果复数输入接近实数,则复数部分接近零。
nan_to_num() 将NaN替换为零,并使用大有限数替换无穷大。
heaviside() 计算Heaviside阶跃函数。