NumPy 差分、最小公倍数、最大公约数、三角函数详解

简介: NumPy 差分离散差分意味着相邻元素之间的减法。例如,对于 [1, 2, 3, 4],离散差分将是 [2-1, 3-2, 4-3] = [1, 1, 1]要找到离散差分,使用 diff() 函数。

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)

作者:小万哥丶

链接:https://juejin.cn/post/7381396887188488231

相关文章
|
5月前
|
Python
NumPy 差分、最小公倍数、最大公约数、三角函数详解
NumPy 助你处理数学问题:计算序列的差分用`np.diff()`,示例返回`[5, 10, -20]`;找最小公倍数(LCM)用`np.lcm()`,数组示例返回`18`;最大公约数(GCD)用`np.gcd.reduce()`,数组示例返回`4`;三角函数如`np.sin()`,`np.deg2rad()`用于角度弧度转换。别忘了`np.arcsin()`等反三角函数,以及`np.hypot()`求斜边长度。学习NumPy,科学计算更轻松!
43 2
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
76 0
|
3月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
58 0
|
17天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
27 3
|
18天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
33 2
|
2月前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
46 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
69 10
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
87 4
|
3月前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
152 5
|
3月前
|
存储 缓存 C语言