numpy.trim_zeros#

numpy.trim_zeros(filt, trim='fb', axis=None)[原始碼]#

移除沿著一個維度且在所有其他維度上皆為零的值。

參數:
filtarray_like

輸入陣列。

trim{“fb”, “f”, “b”}, 選項性

一個字串,其中 ‘f’ 代表從前端修剪,‘b’ 代表從後端修剪。預設情況下,零會從兩側修剪。前端和後端指的是維度的邊緣,“前端” 指的是索引最低的 0 側,而 “後端” 指的是索引最高的(或索引 -1)。

axisint 或 sequence, 選項性

如果為 None,則會裁剪 filt,使得返回的最小邊界框仍然包含所有非零值。如果指定了軸,則只會在 trim 指定的側面上沿該維度切割 filt。剩餘區域將是仍然包含所有非零值的最小區域。

返回:
trimmedndarray 或 sequence

修剪輸入的結果。維度數量和輸入資料型別會被保留。

註解

對於全零陣列,會先修剪第一個軸。

範例

>>> import numpy as np
>>> a = np.array((0, 0, 0, 1, 2, 3, 0, 2, 1, 0))
>>> np.trim_zeros(a)
array([1, 2, 3, 0, 2, 1])
>>> np.trim_zeros(a, trim='b')
array([0, 0, 0, ..., 0, 2, 1])

支援多個維度。

>>> b = np.array([[0, 0, 2, 3, 0, 0],
...               [0, 1, 0, 3, 0, 0],
...               [0, 0, 0, 0, 0, 0]])
>>> np.trim_zeros(b)
array([[0, 2, 3],
       [1, 0, 3]])
>>> np.trim_zeros(b, axis=-1)
array([[0, 2, 3],
       [1, 0, 3],
       [0, 0, 0]])

輸入資料型別會被保留,輸入 list/tuple 意味著輸出 list/tuple。

>>> np.trim_zeros([0, 1, 2, 0])
[1, 2]