Python n维数组的通用函数是什么
在本文中,我们将解释Python中的通用函数以及它们如何应用于n维数组。
通用函数(或ufunc) 是一种按元素操作ndarrays的函数,提供数组广播,类型转换和各种其他标准功能。换句话说,ufunc是围绕接受固定数量的标量输入并返回固定数量的标量输出的函数的“矢量化”包装器。
它们是NumPy库中的简单数学函数。 NumPy 包括许多支持各种操作的 通用函数 。
这些函数包含了标准三角函数,算术运算,复数处理,统计函数等。以下是通用函数的一些特点:
- 这些函数与ndarray(N维数组)一起使用,它是NumPy的数组类。
- 它快速对数组元素进行操作。
- 它提供了各种功能,如数组广播,类型转换等。
- Numpy通用函数是 numpy.ufunc 类中的对象。
- 通过利用frompyfunc库函数,Python函数也可以成为通用函数。
- 在应用对应的数组算术运算符时,一些ufuncs会自动调用。当使用’+’运算符对两个数组逐元素相加时,内部自动调用 np.add() 。
三角函数
由于这些三角函数在弧度中操作,必须通过乘以pi/180来将角度转换为弧度。只有这样我们才能使用三角函数。它们接受一个数组的参数作为输入。
三角函数 | 描述 |
---|---|
sin, cos, tan | 计算角度的正弦、余弦和正切 |
arcsin, arccos, arctan | 计算反正弦、反余弦和反正切角度 |
hypot | 计算指定直角三角形的斜边 |
sinh, cosh, tanh | 计算双曲正弦、双曲余弦和双曲正切角度 |
arcsinh, arccosh, arctanh | 计算反双曲正弦、反双曲余弦和反双曲正切角度 |
deg2rad | 将角度从度转换为弧度 |
rad2deg | 将角度从弧度转换为度 |
示例
# importing numpy module with an alias name
import numpy as np
# creating an array of angles
inputAngles = np.array([0, 30, 45, 60, 90, 180])
# converting input angles from degrees into radians
# using deg2rad() function
radians_angles = np.deg2rad(inputAngles)
# printing the sine values of input angles
print('Sine values of input array angles:')
sineValues = np.sin(radians_angles)
print(sineValues)
print()
# printing the inverse sine of sine values
print('Inverse Sine values of sine values:')
print(np.rad2deg(np.arcsin(sineValues)))
print()
# printing the hyperbolic sine of input angles
print('Hyperbolic Sine values of input angles:')
sineh_value = np.sinh(radians_angles)
print(sineh_value)
print()
# printing the inverse sine hyperbolic
print('Inverse Sine hyperbolic values of input angles:')
print(np.sin(sineh_value))
print()
# printing the hypotenuse of right angled triangle the
triangle_base = 4
triangle_height = 3
print('The hypotenuse of right angled triangle = ', np.hypot(triangle_base, triangle_height))
输出
运行上述程序将生成如下输出:
Sine values of input array angles:
[0.00000000e+00 5.00000000e-01 7.07106781e-01 8.66025404e-01
1.00000000e+00 1.22464680e-16]
Inverse Sine values of sine values:
[0.0000000e+00 3.0000000e+01 4.5000000e+01 6.0000000e+01 9.0000000e+01
7.0167093e-15]
Hyperbolic Sine values of input angles:
[ 0. 0.54785347 0.86867096 1.24936705 2.3012989 11.54873936]
Inverse Sine hyperbolic values of input angles:
[ 0. 0.52085606 0.76347126 0.94878485 0.74483916 -0.85086591]
The hypotenuse of right angled triangle = 5.0
在这里, numpy.array() 函数返回一个ndarray。ndarray是一个满足给定要求的数组对象。
统计函数
统计函数计算数组元素的均值、中位数、方差和最小值。以下是它包含的函数:
统计函数 | 描述 |
---|---|
amin, amax | 返回数组沿指定轴的最小值和最大值 |
ptp | 返回数组沿指定轴的值范围(最大值-最小值) |
median | 计算数据沿指定轴的中位数 |
mean | 计算数据沿指定轴的均值 |
percentile(a, n, axis) | 计算数组沿指定轴的第n个百分位数 |
std | 计算数据沿指定轴的标准差 |
var | 计算数据沿指定轴的方差 |
average | 计算数据沿指定轴的平均值 |
示例
# importing numpy module with an alias name
import numpy as np
# creating an array
inputArray = np.array([20, 45, 50.5, 60, 55.5, 10])
# printing the minimum value in an array
print('Minimum value in an input Array:')
print(np.amin(inputArray))
# printing the maximum value in an array
print('Maximum value in an input Array:')
print(np.amax(inputArray))
# printing the peak to peak value i.e
# range of inputArray(maximum-minimum) values
print('Range of inputArray(maximum-minimum) values:')
print(np.ptp(inputArray))
# printing the 50 percentile of input array
print('50 percentile of input array: ')
print(np.percentile(inputArray, 50))
# printing the mean of input array
print('Mean of an input array:')
print(np.mean(inputArray))
# printing the median of input array
print('Median of an input array:')
print(np.median(inputArray))
# printing the standard deviation of input array
print('Standard deviation of an input array:')
print(np.std(inputArray))
# printing the variance of input array
print('Variance of an input array: ')
print(np.var(inputArray))
# printing the average of input array
print('Average of an input array: ')
print(np.average(inputArray))
输出
执行上述程序后,将生成以下输出:
Minimum value in an input Array:
10.0
Maximum value in an input Array:
60.0
Range of inputArray(maximum-minimum) values:
50.0
50 percentile of input array:
47.75
Mean of an input array:
40.166666666666664
Median of an input array:
47.75
Standard deviation of an input array:
18.598088312751095
Variance of an input array:
345.88888888888886
Average of an input array:
40.166666666666664
位操作函数
位操作函数将整数作为输入参数,并对其二进制表示进行位操作。以下是包含的函数列表 −
位操作函数 | 描述 |
---|---|
位与 | 对两个数组元素执行位与运算 |
位或 | 对两个数组元素执行位或运算 |
位异或 | 对两个数组元素执行位异或运算 |
取反 | 对数组元素执行位取反运算 |
左移 | 将元素的位向左移动 |
右移 | 将元素的位向右移动 |
示例
# importing numpy module with an alias name
import numpy as np
# creating two arrays
inputArray_1 = np.array([3, 2, 7, 5])
inputArray_2 = np.array([5, 1, 6, 4])
# printing the bitwise "and" operation of two arrays
print('Bitwise "and" operation of two arrays:')
print(np.bitwise_and(inputArray_1, inputArray_2))
# printing the bitwise "or" operation of two arrays
print('Bitwise "or" operation of two arrays:')
print(np.bitwise_or(inputArray_1, inputArray_2))
# printing the bitwise "xor" operation of two arrays
print('Bitwise "xor" operation of two arrays:')
print(np.bitwise_xor(inputArray_1, inputArray_2))
# printing the inversion/not of inputArray_1
print('The inversion/not of inputArray_1:')
print(np.invert(inputArray_1))
# left shifting inputArray_1 elements by 1 bit
print('left shifting inputArray_1 elements by 1 bit')
print(np.left_shift(inputArray_1, 1))
# right shifting inputArray_1 elements by 2 bits
print('right shifting inputArray_1 elements by 2 bits:')
print(np.right_shift(inputArray_1, 2))
输出
执行以上代码后,将生成以下输出:
Bitwise "and" operation of two arrays:
[1 0 6 4]
Bitwise "or" operation of two arrays:[7 3 7 5]
Bitwise "xor" operation of two arrays:
[6 3 1 1]
The inversion/not of inputArray_1:
[-4 -3 -8 -6]
left shifting inputArray_1 elements by 1 bit
[ 6 4 14 10]
right shifting inputArray_1 elements by 2 bits:
[0 0 1 1]
结论
在这篇文章中,我们学习了Python的n维数组中的所有通用函数,以及示例。