Python 中用于 N 维数组的通用函数是什么?
在本文中,我们将解释 Python 中的通用函数以及它们如何应用于 N 维数组。
通用函数(或ufunc)是在 ndarray 上逐元素操作的函数,提供数组广播、类型转换以及各种其他标准功能。换句话说,ufunc 是围绕接受固定数量标量输入并返回固定数量标量输出的函数的“矢量化”包装器。
它们是 NumPy 库中的简单数学函数。NumPy 包含许多通用函数,支持各种操作。
这些函数包含标准三角函数、算术运算、复数处理、统计函数等等。以下是通用函数的一些特征:
这些函数适用于 ndarray(N 维数组),它是 NumPy 的数组类。
它提供了对元素的快速数组运算。
它提供各种功能,例如数组广播、类型转换等等。
NumPy 通用函数是numpy.ufunc类中的对象。
Python 函数也可以通过利用 frompyfunc 库函数来实现通用化。
当应用相应的数组算术运算符时,某些 ufunc 会自动调用。当使用“+”运算符逐元素添加两个数组时,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
位操作函数
位操作函数以整数作为输入参数,并对其二进制表示执行按位运算。以下为它包含的函数:
位操作函数 | 描述 |
---|---|
bitwise_and | 对两个数组元素执行按位“与”运算 |
bitwies_or | 对两个数组元素执行按位“或”运算 |
bitwise_xor | 对两个数组元素执行按位“异或”运算 |
invert | 执行数组元素的按位取反 |
left_shift | 将元素的位向左移动 |
right_shift | 将元素的位向右移动 |
示例
# 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 维数组的所有通用函数以及示例。
广告