РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
147 of 541 menu

Функция gradient

Функция gradient вычисляет численный градиент многомерного массива. Градиент - это вектор частных производных функции по каждому измерению. Функция полезна при анализе данных, обработке изображений и решении дифференциальных уравнений.

Первым параметром передаётся массив, для которого вычисляется градиент. Вторым параметром varargs можно задать расстояние между точками вдоль каждой оси. Параметр edge_order определяет точность вычислений на границах (1 или 2). Параметр axis позволяет указать оси, вдоль которых вычисляется градиент.

Синтаксис

np.gradient(arr, [varargs], [edge_order], [axis])

Пример

Вычислим градиент одномерного массива с шагом 1:

import numpy as np arr = np.array([1, 2, 4, 7, 11]) res = np.gradient(arr) print(res)

Результат выполнения кода:

[1. 1.5 2.5 3.5 4. ]

Градиент вычисляется как разность соседних значений: центральная разность во внутренних точках и односторонняя разность на границах.

Пример

Рассмотрим пример с неединичным шагом между точками:

import numpy as np arr = np.array([1, 3, 6, 10]) res = np.gradient(arr, 0.5) print(res)

Результат выполнения кода:

[4. 5. 7. 8.]

Указание второго параметра 0.5 означает, что точки отстоят друг от друга на 0.5, что влияет на вычисление градиента.

Пример

Вычислим градиент двумерного массива:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) gx, gy = np.gradient(arr) print("Gradient along rows:") print(gx) print("Gradient along columns:") print(gy)

Результат выполнения кода:

Gradient along rows: [[3. 3. 3.] [3. 3. 3.] [3. 3. 3.]] Gradient along columns: [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.]]

Функция возвращает кортеж массивов, где каждый массив - градиент вдоль соответствующей оси. Первый массив - градиент по строкам (ось 0), второй - по столбцам (ось 1).

Пример

Используем параметр edge_order для повышения точности на границах:

import numpy as np arr = np.array([1, 2, 4, 8]) res1 = np.gradient(arr, edge_order=1) res2 = np.gradient(arr, edge_order=2) print("edge_order=1:", res1) print("edge_order=2:", res2)

Результат выполнения кода:

edge_order=1: [1. 2. 3. 4.] edge_order=2: [1. 1.5 3. 5. ]

При edge_order=2 на границах используется более точная разностная схема второго порядка, что даёт более точное приближение производной.

Пример

Вычислим градиент только вдоль указанной оси:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = np.gradient(arr, axis=1) print(res)

Результат выполнения кода:

[[1. 1. 1.] [1. 1. 1.]]

Параметр axis=1 указывает, что градиент вычисляется только вдоль столбцов (горизонтальное направление).

Смотрите также

  • функцию diff,
    которая вычисляет разности между соседними элементами массива
  • функцию ediff1d,
    которая вычисляет разности между соседними элементами одномерного массива
  • функцию interp,
    которая выполняет одномерную линейную интерполяцию
  • функцию unwrap,
    которая корректирует фазовые скачки на 2π
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить