在本文中,我们了解并实现numpy.ediff1d()
了NumPy函数,因为NumPy是一个数组处理包numpy.ediff1d()用于计算数组元素之间的差异。
什么是 Numpy.ediff1d()?
在 python 中用于numpy.ediff1d()
计算给定数组元素之间的连续差异。
我们可以提到前置值,通过to_begin
它在数组的开头前置一个值,类似地,我们可以通过在数组的末尾附加一个值to_end
。
这些值可以包含多个要前置或附加的元素。
ediff1d() 的语法
numpy.ediff1d(ary, to_end = None , to_begin = None ) |
范围
范围 | 描述 | 必需/可选 |
ary: 类似数组 | 输入数组 | 必需的 |
to_end: 类似数组 | 这些是要附加在包含差异的数组末尾的数字。 | 选修的 |
to_begin: 类似数组 | 这些是要添加到包含差异的数组开头的数字。 | 选修的 |
返回值
返回一个数组,其中包含:
- 在数组中前置和附加值(如果有)。
- 数组元素之间的连续差值。
ediff1d() 方法的示例
导入 numpy 库并声明和打印数组。
import numpy as np arr = np.array([ 10 , 20 , 30 , 40 , 50 ]) print ( "Input array: \n" ,arr) |
Input array: [10 20 30 40 50] |
示例 1:实施numpy.ediff1d()
下面的代码使用 np.ediff1d() 函数来计算给定数组“arr”中每个元素之间的差异。
x = np.ediff1d(arr) print ( "Output array: \n" ,x) |
输出是一个数组,其中包含给定数组的每个元素之间的差异。在本例中,输出数组包含四个元素,每个元素的值等于 10。
输出 :
Output array: [10 10 10 10] |
示例 2 :将元素前置和附加到输出。
此代码创建一个带有附加开始值和结束值的输出数组。它使用 NumPy ediff1d 函数来执行此操作,该函数采用一个数组(在本例中为 arr)并添加 to_begin 和 to_end 值(在本例中为 1 和 100)。
y = np.ediff1d(arr,to_begin = [ 1 ],to_end = [ 100 ]) print ( "Output array with begin and end value: \n" ,y) |
输出 :
Output array with begin and end value: [ 1 10 10 10 10 100] |
示例 3:在输出中添加和追加多个元素
下面的代码使用 numpy.ediff1d() 函数来计算数组 (arr) 中元素之间的差异。to_begin 和 to_end 参数用于将元素添加到输出数组的前面和后面。
z = np.ediff1d(arr, to_begin = [ 0 , 1 ], to_end = [ 90 , 100 ]) print ( "Output array with multiple begin and end value: \n" ,z) |
在这种情况下,输出数组将以值 1 开始,以值 100 结束。结果存储在变量 y 中并打印到控制台。
输出 :
Output array with multiple begin and end value: [ 0 1 10 10 10 10 90 100] |
示例 4:返回的数组始终为一维。
此代码使用 NumPy 库来计算二维数组的每个元素之间的差异。二维数组存储在名为“w”的变量中。然后使用 NumPy ediff1d() 函数计算数组每个元素之间的差异。
w = [[ 1 , 2 , 4 ], [ 1 , 6 , 24 ]] print ( "Input array: \n" ,w) print ( "Output array: \n" ,np.ediff1d(w)) |
ediff1d() 函数的输出是一个一维数组,其中包含数组每个元素之间的差异。在此示例中,输出数组包含差值 1、2、-3、5 和 18。
输出计算如下:
- 2 – 1 = 1
- 4 – 2 = 2
- 1 – 4 = -3
- 6 – 1 = 5
- 24 – 6 = 18
输出:
Input array: [[1, 2, 4], [1, 6, 24]] Output array: [ 1 2 -3 5 18] |
结论
我们已经理解并实现了numpy.ediff1d()
带有和不带有可选参数的函数,即to_end
具有to_begin
单个或多个元素作为其值。numpy.ediff1d()
用于返回一个由输入数组元素的连续差值组成的数组。
参考
https://het.as.utexas.edu/HET/Software/Numpy/reference/generated/numpy.ediff1d.html