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 維陣列的所有通用函式以及示例。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP