Модуль numpy Python надає функцію під назвою numpy.pad() для виконання доповнення в масиві. Ця функція має кілька обов'язкових і необов'язкових параметрів.
Синтаксис:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Параметри:
масив: array_like
Це вихідний масив, який ми хочемо заповнити.
pad_width: int, послідовність або array_like
Цей параметр визначає кількість значень, які додаються до країв кожної осі. Унікальна ширина майданчика для кожної осі визначається як (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Для кожної осі ((до, після),) буде оброблятися так само, як до і після панелі. Для всіх осей int, або (pad,) є ярликом до перед = після = ширина поля.
режим: str або функція (необов'язково)
Цей параметр має одне з таких рядкових значень:
'constant' (за замовчуванням)
рівність рядків у java
Якщо ми призначимо постійне значення параметру режиму, доповнення буде виконано з постійним значенням.
'край'
Це значення краю масиву. Відступ буде виконано з цим значенням краю.
linear_ramp
Це значення використовується для виконання відступу з лінійним нахилом між значенням краю та кінцевим значенням.
'максимальний'
Це значення параметра виконує відступ за допомогою максимального значення частини вектора або всього вздовж кожної осі.
'означати'
Це значення параметра виконує доповнення через середнє значення частини вектора або всього вздовж кожної осі.
'медіана'
Це значення параметра виконує відступ через середнє значення частини вектора або всього вздовж кожної осі.
'мінімум'
Це значення параметра виконує доповнення через мінімальне значення частини вектора або всього вздовж кожної осі.
'відображати'
Це значення доповнює масив через векторне відображення, яке відображається на початковому та кінцевому векторних значеннях уздовж кожної осі.
'симетричний'
Це значення використовується для доповнення масиву через векторне відображення, яке дзеркально відображається вздовж краю масиву.
'загорнути'
Це значення використовується для виконання доповнення масиву через обтікання вектора вздовж осі. Початкові значення використовуються для доповнення кінця, а кінцеві значення доповнюють початок.
'порожній'
Це значення використовується для доповнення масиву невизначеними значеннями.
stat_length: int або послідовність (необов'язково)
Цей параметр використовується для «максимуму», «мінімуму», «середнього значення», «медіани». Він визначає кількість значень на кожній осі краю, які використовуються для обчислення статичного значення.
постійні_значення: скаляр або послідовність (необов'язково)
Цей параметр використовується в «константі». Він визначає значення для встановлення доповнених значень для кожної осі.
кінцеві_значення: скаляр або послідовність (необов'язково)
Цей параметр використовується в 'linear_ramp'. Він визначає значення, які використовуються для останнього значення linear_ramp і формуватиме край доповненого масиву.
reflect_type: парний або непарний (необов'язково)
Цей параметр використовується в «symmetric» і «reflect». За замовчуванням, reflect_type є «рівним» із незмінним відображенням навколо значення краю. Шляхом віднімання відображених значень із подвоєного значення краю створюється розширена частина масиву для «непарного» стилю.
Повернення:
панель: ndarray
Ця функція повертає доповнений масив, ранг якого дорівнює масиву, форма якого збільшується відповідно до pad_width.
приклад 1:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
Вихід:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
У наведеному вище коді
- Ми імпортували numpy з псевдонімом np.
- Ми створили список значень x.
- Ми оголосили змінну y та присвоїли значення, яке повертає функція np.pad().
- Ми передали список x, pad_width, встановили режим постійний і постійні_значення у функції.
- Нарешті, ми спробували надрукувати значення y.
У вихідних даних він показує ndarray, доповнений визначеним розміром і значеннями.
pd.merge
приклад 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Вихід:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
приклад 3:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
Вихід:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
Приклад 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Вихід:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
Приклад 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Вихід:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Приклад 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Вихід:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Приклад 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Вихід:
array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]])
Приклад 8:
import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y
Вихід:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
У наведеному вище коді
- Ми імпортували numpy з псевдонімом np.
- Ми створили функцію pad_with з вектор , pad_width , вісь , і kwargs .
- Ми оголосили змінну pad_value, щоб отримати значення заповнення з отримати() функція.
- Ми передали значення заповнення до частини вектора.
- Ми створили масив x за допомогою функції np.arange() і змінили форму за допомогою функції reshape().
- Ми оголосили змінну y та присвоїли їй значення, яке повертає функція np.pad().
- Ми передали список x і pad_width у функцію
- Нарешті, ми спробували надрукувати значення y.
У вихідних даних він показує ndarray, доповнений визначеним розміром і значеннями.
Приклад 9:
import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with)
Вихід:
array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]])
Приклад 10:
import numpy as np import numpy as np 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 x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100)
Вихід:
array([[100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])