Функция ediff1d
Функция ediff1d вычисляет разности между соседними элементами
вдоль одномерного массива. Первым параметром функция принимает
массив, для которого нужно найти разности. Вторым параметром
можно передать значения, которые будут подставлены перед
вычислением разностей.
Синтаксис
np.ediff1d(ary, to_end=None, to_begin=None)
Пример
Давайте вычислим разности между соседними элементами одномерного массива чисел:
import numpy as np
arr = np.array([1, 3, 6, 10, 15])
res = np.ediff1d(arr)
print(res)
Результат выполнения кода:
[2 3 4 5]
Функция вернула разности между элементами: 3-1=2, 6-3=3, 10-6=4, 15-10=5.
Пример
Давайте добавим значения в начало и конец массива с помощью параметров
to_begin и to_end:
import numpy as np
arr = np.array([2, 4, 8, 16])
res = np.ediff1d(arr, to_begin=0, to_end=10)
print(res)
Результат выполнения кода:
[0 2 4 8 10]
Сначала в массив добавилось значение 0, затем вычислены разности: 4-2=2, 8-4=4, 16-8=8, и в конце добавлено 10.
Пример
Рассмотрим работу функции с массивом, содержащим отрицательные числа:
import numpy as np
arr = np.array([-5, -2, 0, 3, 7])
res = np.ediff1d(arr)
print(res)
Результат выполнения кода:
[3 2 3 4]
Функция корректно обрабатывает отрицательные числа, вычисляя разности: -2-(-5)=3, 0-(-2)=2, 3-0=3, 7-3=4.
Пример
Если передать двумерный массив, функция автоматически преобразует его в одномерный и вычислит разности:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
res = np.ediff1d(arr)
print(res)
Результат выполнения кода:
[1 1 1 1 1]
Массив был преобразован в одномерный [1, 2, 3, 4, 5, 6], и для него вычислены разности: все разности равны 1.
Пример
Используем параметры to_begin и to_end
для добавления нескольких значений в виде списка:
import numpy as np
arr = np.array([10, 20, 30])
res = np.ediff1d(arr, to_begin=[100, 200], to_end=[300, 400])
print(res)
Результат выполнения кода:
[100 200 10 10 300 400]
Функция добавила значения 100 и 200 перед вычислением разностей, затем вычислила разности 20-10=10 и 30-20=10, и в конце добавила значения 300 и 400.