Numpy ediff1d – 数组的连续元素之间的差异

在本文中,我们了解并实现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: 类似数组 这些是要添加到包含差异的数组开头的数字。 选修的
Numpy -ediff1d 语法参数

返回值

返回一个数组,其中包含:

  • 在数组中前置和附加值(如果有)。
  • 数组元素之间的连续差值。

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