numpy.diff
-
numpy.diff(a, n=1, axis=-1)[source] -
Вычисление n-й дискретной разницы по заданной оси.
Первая разность определяется как
out[n] = a[n+1] - a[n]по заданной оси, более высокие разности вычисляются с помощьюdiffрекурсивно.Параметры: a : array_like
Входной массив
n : int, необязательно
Количество раз, когда значения различаются.
axis : int, необязательно
Ось, по которой берется разность, по умолчанию — последняя ось.
Возвращает: diff : ndarray
n-я разность. Форма выходного массива такая же, как
a, за исключениемaxis, где размерность меньше наn. Тип выходного массива такой же, как у входного.Примечания
Для булевых массивов сохранение типа означает, что результат будет содержать
Falseпри одинаковых последовательных элементах иTrueпри их различии.Для массивов целых без знака результаты также будут без знака. Это не должно удивлять, поскольку результат согласуется с прямым вычислением разницы:
>>> u8_arr = np.array([1, 0], dtype=np.uint8) >>> np.diff(u8_arr) array([255], dtype=uint8) >>> u8_arr[1,...] - u8_arr[0,...] array(255, np.uint8)
Если это нежелательно, то массив следует сначала привести к большему целочисленному типу:
>>> i16_arr = u8_arr.astype(np.int16) >>> np.diff(i16_arr) array([-1], dtype=int16)
Примеры
>>> x = np.array([1, 2, 4, 7, 0]) >>> np.diff(x) array([ 1, 2, 3, -7]) >>> np.diff(x, n=2) array([ 1, 1, -10])
>>> x = np.array([[1, 3, 6, 10], [0, 5, 6, 8]]) >>> np.diff(x) array([[2, 3, 4], [5, 1, 2]]) >>> np.diff(x, axis=0) array([[-1, 2, 0, -2]])
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.diff.html