Funzione Python Numpy.pad

Manav Narula 3 gennaio 2023
Funzione Python Numpy.pad

In Python, abbiamo il modulo NumPy per creare e lavorare con gli array. Gli array possono essere di diverse dimensioni e dimensioni. Il riempimento è un metodo utile disponibile per compensare la dimensione di un array. Possiamo modificare l’array e aggiungere alcuni valori riempiti per cambiarne la forma e le dimensioni.

Possiamo avere anche altri metodi per rimodellare un array. Tuttavia, questa funzione è utile perché ridimensiona automaticamente la memoria dell’array dopo averlo utilizzato.

La funzione numpy.pad() viene utilizzata per ottenere questo risultato. Il codice seguente mostra un esempio di questa funzione.

import numpy as np

a = [1, 2, 3, 4]
b = np.pad(a, (3, 2), mode="constant", constant_values=(0, 5))
print(b)

Produzione:

[0 0 0 1 2 3 4 5 5]

Nell’esempio precedente, il primo argomento, una tupla (3,2), specifica che i 3 elementi vengono aggiunti prima dell’asse e 2 elementi vengono aggiunti alla fine dell’asse.

Il parametro mode specifica quale tipo di valore deve essere usato per riempire l’array. Nel nostro codice, usiamo valori costanti 0 e 5 per riempire l’array, ma possiamo modificare questa modalità in diversi tipi come median, mean, empty, wrap e altro. Ciascuna modalità fornisce diversi elementi con cui riempire l’array.

Possiamo anche usare questa funzione con array multidimensionali. Per esempio,

import numpy as np

a = np.array(
    [[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0]]
)
b = np.pad(a, [(0, 1), (0, 1)], mode="constant")
print(b)

Produzione:

[[1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0. 0.]]
Nota
Dobbiamo specificare due tuple per un array 2-D e che i valori delle costanti predefinite sono 0 nella funzione.
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn