Per un esempio di lavoro minimo, digitalizziamo un array 2D. numpy.digitize
richiede una matrice 1D:Come posso sapere se NumPy crea una vista o una copia?
import numpy as np
N = 200
A = np.random.random((N, N))
X = np.linspace(0, 1, 20)
print np.digitize(A.ravel(), X).reshape((N, N))
Ora la documentation says:
... Una copia è fatta solo se necessario.
Come faccio a sapere se la copia è "necessaria" in questo caso? In generale, c'è un modo per determinare se una determinata operazione crea una copia o una vista?
Se vuoi forzare la copia, la cosa migliore che ho trovato è usare np.copy, o np.array come 'tr = np.array (aT, copy = True)' –