NumPy 差分、最小公倍数、最大公约数、三角函数详解
cnblogs 2024-06-18 08:09:01 阅读 51
NumPy 助你处理数学问题:计算序列的差分用`np.diff()`,示例返回`[5, 10, -20]`;找最小公倍数(LCM)用`np.lcm()`,数组示例返回`18`;最大公约数(GCD)用`np.gcd.reduce()`,数组示例返回`4`;三角函数如`np.sin()`,`np.deg2rad()`用于角度弧度转换。别忘了`np.arcsin()`等反三角函数,以及`np.hypot()`求斜边长度。学习NumPy,科学计算更轻松!
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=5
,25-15=10
,5-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=5
,25-15=10
,5-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=12
和 6*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=18
,6*3=18
和 9*2=18
)。
示例
找到包含从 1
到 10
的所有整数的数组中所有值的最小公倍数:
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=2
和 9/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
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。