當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy diff用法及代碼示例


本文簡要介紹 python 語言中 numpy.diff 的用法。

用法:

numpy.diff(a, n=1, axis=-1, prepend=<no value>, append=<no value>)

計算沿給定軸的n-th 離散差。

第一個差異由out[i] = a[i+1] - a[i] 沿給定軸給出,更高的差異通過遞歸使用diff 計算。

參數

a array_like

輸入數組

n 整數,可選

值發生差異的次數。如果為零,則按原樣返回輸入。

axis 整數,可選

取差值的軸,默認為最後一個軸。

prepend, append 數組,可選

在執行差異之前要預先或附加到沿軸的值。標量值在軸方向擴展為長度為 1 的數組,輸入數組的形狀沿所有其他軸擴展。否則,尺寸和形狀必須與軸相匹配。

返回

diff ndarray

n-th 差異。輸出的形狀與a除了沿尺寸小於n.輸出的類型與任意兩個元素之差的類型相同a.這與類型相同a在大多數情況下。一個值得注意的例外是datetime64,這導致timedelta64輸出數組。

注意

為布爾數組保留類型,因此當連續元素相同時結果將包含 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,...]
255

如果這不是可取的,則應首先將數組轉換為更大的整數類型:

>>> 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]])
>>> x = np.arange('1066-10-13', '1066-10-16', dtype=np.datetime64)
>>> np.diff(x)
array([1, 1], dtype='timedelta64[D]')

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.diff。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。