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


Python numpy pad用法及代碼示例

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

用法:

numpy.pad(array, pad_width, mode='constant', **kwargs)

填充一個數組。

參數

array 秩為 N 的 數組

要填充的數組。

pad_width {sequence, 數組, int}

填充到每個軸邊的值的數量。 ((before_1, after_1), ... (before_N, after_N)) 每個軸的唯一焊盤寬度。 ((before, after),) 在每個軸的 pad 之前和之後產生相同的結果。 (pad,) 或 int 是 before = after = 所有軸的焊盤寬度的快捷方式。

mode str 或函數,可選

以下字符串值之一或用戶提供的函數。

‘constant’(默認)

具有恒定值的焊盤。

‘edge’

用數組的邊值填充。

‘linear_ramp’

在end_value 和陣列邊值之間具有線性斜坡的焊盤。

‘maximum’

使用沿每個軸的全部或部分向量的最大值填充。

‘mean’

使用沿每個軸的全部或部分向量的平均值填充。

‘median’

使用沿每個軸的全部或部分向量的中值填充。

‘minimum’

使用沿每個軸的全部或部分向量的最小值填充。

‘reflect’

具有矢量反射的焊盤鏡像在沿每個軸的矢量的第一個和最後一個值上。

‘symmetric’

具有沿陣列邊鏡像的矢量反射的焊盤。

‘wrap’

使用沿軸的向量環繞的焊盤。第一個值用於填充結束,結束值用於填充開始。

‘empty’

具有未定義值的焊盤。

<function>

填充函數,見注釋。

stat_length 序列或整數,可選

用於‘maximum’, ‘mean’, ‘median’和‘minimum’。用於計算統計值的每個軸邊的值的數量。

((before_1, after_1), ... (before_N, after_N)) 每個軸的唯一統計長度。

((before, after),) 在每個軸的統計長度之前和之後產生相同的結果。

(stat_length,) 或 int 是 before = after = 所有軸的統計長度的快捷方式。

默認為 None ,以使用整個軸。

constant_values 序列或標量,可選

用於‘constant’。為每個軸設置填充值的值。

((before_1, after_1), ... (before_N, after_N)) 每個軸的唯一焊盤常數。

((before, after),) 在每個軸的常量之前和之後產生相同的結果。

(constant,)constant 是所有軸的 before = after = constant 的快捷方式。

默認值為 0。

end_values 序列或標量,可選

用於‘linear_ramp’。用於linear_ramp 的結束值的值將形成填充數組的邊。

((before_1, after_1), ... (before_N, after_N)) 每個軸的唯一最終值。

((before, after),) 在每個軸的結束值之前和之後產生相同的值。

(constant,)constant 是所有軸的 before = after = constant 的快捷方式。

默認值為 0。

reflect_type {‘even’, ‘odd’},可選

用於‘reflect’ 和‘symmetric’。 ‘even’ 樣式是默認樣式,邊值周圍沒有改變反射。對於‘odd’ 樣式,數組的擴展部分是通過從邊值的兩倍中減去反射值來創建的。

返回

pad ndarray

秩等於的填充數組numpy.array隨著形狀增加根據pad_width.

注意

對於 rank 大於 1 的數組,後麵軸的一些填充是根據前麵軸的填充計算的。這是最容易想到的 rank 2 數組,其中填充數組的角是通過使用第一個軸的填充值來計算的。

填充函數(如果使用)應就地修改 rank 1 數組。它具有以下簽名:

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

其中

vector ndarray

排名 1 的數組已經用零填充。填充值是向量[:iaxis_pad_width[0]] 和向量[-iaxis_pad_width[1]:]。

iaxis_pad_width tuple

整數的 2 元組,iaxis_pad_width[0] 表示在向量開頭填充的值的數量,其中 iaxis_pad_width[1] 表示在向量末尾填充的值的數量。

iaxis int

當前正在計算的軸。

kwargs dict

函數需要的任何關鍵字參數。

例子

>>> a = [1, 2, 3, 4, 5]
>>> np.pad(a, (2, 3), 'constant', constant_values=(4, 6))
array([4, 4, 1, ..., 6, 6, 6])
>>> np.pad(a, (2, 3), 'edge')
array([1, 1, 1, ..., 5, 5, 5])
>>> np.pad(a, (2, 3), 'linear_ramp', end_values=(5, -4))
array([ 5,  3,  1,  2,  3,  4,  5,  2, -1, -4])
>>> np.pad(a, (2,), 'maximum')
array([5, 5, 1, 2, 3, 4, 5, 5, 5])
>>> np.pad(a, (2,), 'mean')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> np.pad(a, (2,), 'median')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> a = [[1, 2], [3, 4]]
>>> np.pad(a, ((3, 2), (2, 3)), 'minimum')
array([[1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [3, 3, 3, 4, 3, 3, 3],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1]])
>>> a = [1, 2, 3, 4, 5]
>>> np.pad(a, (2, 3), 'reflect')
array([3, 2, 1, 2, 3, 4, 5, 4, 3, 2])
>>> np.pad(a, (2, 3), 'reflect', reflect_type='odd')
array([-1,  0,  1,  2,  3,  4,  5,  6,  7,  8])
>>> np.pad(a, (2, 3), 'symmetric')
array([2, 1, 1, 2, 3, 4, 5, 5, 4, 3])
>>> np.pad(a, (2, 3), 'symmetric', reflect_type='odd')
array([0, 1, 1, 2, 3, 4, 5, 5, 6, 7])
>>> np.pad(a, (2, 3), 'wrap')
array([4, 5, 1, 2, 3, 4, 5, 1, 2, 3])
>>> def pad_with(vector, pad_width, iaxis, kwargs):
...     pad_value = kwargs.get('padder', 10)
...     vector[:pad_width[0]] = pad_value
...     vector[-pad_width[1]:] = pad_value
>>> a = np.arange(6)
>>> a = a.reshape((2, 3))
>>> np.pad(a, 2, pad_with)
array([[10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10,  0,  1,  2, 10, 10],
       [10, 10,  3,  4,  5, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10]])
>>> np.pad(a, 2, pad_with, padder=100)
array([[100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100,   0,   1,   2, 100, 100],
       [100, 100,   3,   4,   5, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100]])

相關用法


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