Skip to content

NumPy: Creare un ndarray vuoto con np.empty() e np.empty_like()

Python

Questo articolo descrive come creare una matrice NumPy vuota non inizializzata ndarray.

  • numpy.vuoto()
    • Specificare la forma (numero di righe, colonne, ecc.) e dtype
  • numpy.empty_like()
    • Crea con la stessa forma e dtype dell’array esistente

Sebbene sia chiamato “vuoto”, i valori archiviati nella memoria allocata vengono letti, quindi l’array creato ha valori casuali.

Se si desidera generare ndarray inizializzando tutti gli elementi con 0, 1 o valore, vedere il seguente articolo.

Crea un ndarray vuoto con numpy.empty()

Per creare un array vuoto con la specifica di shape e dtype, usa numpy.empty().

Specificare la forma della matrice da creare.

import numpy as np

print(np.empty(3))
# [ -3.10503618e+231  -3.10503618e+231  -3.10503618e+231]

print(np.empty((2, 3)))
# [[ -3.10503618e+231   2.68677888e+154   6.92663118e-310]
#  [  1.06099790e-313   6.92663119e-310   4.17211958e-309]]

Per configurazione predefinita, dtype è float64. Puoi anche specificarlo con l’argomento dtype.

print(np.empty(3).dtype)
# float64

print(np.empty(3, dtype=np.int))
# [-1152921504606846976 -1152921504606846976 -1152921504606846974]

print(np.empty(3, dtype=np.int).dtype)
# int64

Per ulteriori informazioni sul tipo di dati dtype in NumPy, vedere l’articolo seguente.

Crea un ndarray vuoto con numpy.empty_like()

Per creare un array vuoto con la stessa forma e dtype di un array esistente, usa numpy.empty_like().

Specificare una matrice esistente. Il dtype dell’array creato è lo stesso del dtype dell’array originale.

a_int = np.arange(6).reshape((2,3))
print(a_int)
# [[0 1 2]
#  [3 4 5]]

print(np.empty_like(a_int))
# [[8070450532247928832 6917537789928580555     140196575903747]
#  [        21474836480     140196576086528     844446404968448]]

a_float = np.arange(6).reshape((2,3)) / 10
print(a_float)
# [[ 0.   0.1  0.2]
#  [ 0.3  0.4  0.5]]

print(np.empty_like(a_float))
# [[  0.00000000e+000   4.94065646e-324   9.88131292e-324]
#  [  1.48219694e-323   1.97626258e-323   2.47032823e-323]]

Puoi anche specificare un tipo con l’argomento.

print(np.empty_like(a_float, dtype=np.int))
# [[0 1 2]
#  [3 4 5]]