NumPy 差分、最小公倍數、最大公約數、三角函式詳解

小万哥丶發表於2024-06-17

NumPy 差分

離散差分意味著相鄰元素之間的減法。

例如,對於 [1, 2, 3, 4],離散差分將是 [2-1, 3-2, 4-3] = [1, 1, 1]

要找到離散差分,使用 diff() 函式。

示例:

import numpy as np

arr = np.array([10, 15, 25, 5])

newarr = np.diff(arr)

print(newarr)

返回:[5 10 -20],因為 15-10=525-15=105-25=-20

我們可以透過給出引數 n 來重複執行此操作。

例如,對於 [1, 2, 3, 4]n = 2 時,離散差分將是 [2-1, 3-2, 4-3] = [1, 1, 1],然後,由於 n=2,我們將再次執行一次,得到新結果:[1-1, 1-1] = [0, 0]

示例

對以下陣列進行兩次離散差分:

import numpy as np

arr = np.array([10, 15, 25, 5])

newarr = np.diff(arr, n=2)

print(newarr)

返回:[5 -30],因為:15-10=525-15=105-25=-20,而 10-5=5-20-10=-30

NumPy 最小公倍數(LCM)

最小公倍數是兩個數的最小公倍數。

示例:

import numpy as np

num1 = 4
num2 = 6

x = np.lcm(num1, num2)

print(x)

返回:12,因為這是這兩個數的最小公倍數(4*3=126*2=12)。

在陣列中找到最小公倍數

要找到陣列中所有值的最小公倍數,可以使用 reduce() 方法。

reduce() 方法將對每個元素使用 ufunc,在本例中是 lcm() 函式,並將陣列減少一個維度。

示例

找到以下陣列值的最小公倍數:

import numpy as np

arr = np.array([3, 6, 9])

x = np.lcm.reduce(arr)

print(x)

返回:18,因為這是所有三個數的最小公倍數(3*6=186*3=189*2=18)。

示例

找到包含從 110 的所有整數的陣列中所有值的最小公倍數:

import numpy as np

arr = np.arange(1, 11)

x = np.lcm.reduce(arr)

print(x)

NumPy 最大公約數(GCD)

最大公約數(GCD,也稱為 HCF,即最高公因數)是兩個數的最大公共因數。

示例:

import numpy as np

num1 = 6
num2 = 9

x = np.gcd(num1, num2)

print(x)

返回:3,因為這是兩個數都可以被整除的最大數(6/3=29/3=3)。

在陣列中找到最大公約數

要找到陣列中所有值的最大公約數,可以使用 reduce() 方法。

reduce() 方法將對每個元素使用 ufunc,在本例中是 gcd() 函式,並將陣列減少一個維度。

示例

找到以下陣列中所有數字的最大公約數:

import numpy as np

arr = np.array([20, 8, 32, 36, 16])

x = np.gcd.reduce(arr)

print(x)

返回:4,因為這是所有值都可以被整除的最大數。

NumPy 三角函式

NumPy 提供了 sin()cos()tan() 等 ufunc,它們接受弧度值並生成相應的正弦、餘弦和正切值。

示例:

import numpy as np

x = np.sin(np.pi/2)

print(x)

示例

找到陣列 arr 中所有值的正弦值:

import numpy as np

arr = np.array([np.pi/2, np.pi/3, np.pi/4, np.pi/5])

x = np.sin(arr)

print(x)

將角度轉換為弧度

預設情況下,所有的三角函式都接受弧度作為引數,但是在 NumPy 中我們也可以將弧度和角度相互轉換。

注意:弧度值是 pi/180 乘以角度值。

示例

將以下陣列 arr 中的所有值轉換為弧度:

import numpy as np

arr = np.array([90, 180, 270, 360])

x = np.deg2rad(arr)

print(x)

將弧度轉換為角度

示例

將以下陣列 arr 中的所有值轉換為角度:

import numpy as np

arr = np.array([np.pi/2, np.pi, 1.5*np.pi, 2*np.pi])

x = np.rad2deg(arr)

print(x)

查詢角度

從正弦、餘弦、正切值查詢角度。例如,sin、cos 和 tan 的反函式(arcsin、arccos、arctan)。

NumPy 提供了 arcsin()arccos()arctan() 等 ufunc,它們給出相應 sin、cos 和 tan 值的弧度值。

示例

找到 1.0 的角度:

import numpy as np

x = np.arcsin(1.0)

print(x)

陣列中每個值的角度

示例

找到陣列中所有正弦值的角度:

import numpy as np

arr = np.array([1, -1, 0.1])

x = np.arcsin(arr)

print(x)

斜邊

在 NumPy 中使用勾股定理找到斜邊。

NumPy 提供了 hypot() 函式,它接受底邊和垂直邊的值,並根據勾股定理生成斜邊。

示例

找到底邊為 4,垂直邊為 3 的斜邊:

import numpy as np

base = 3
perp = 4

x = np.hypot(base, perp)

print(x)

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關注

相關文章