В качестве минимального рабочего примера давайте оцифруем двумерный массив. numpy.digitize
требуется одномерный массив:
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))
Теперь в документации говорится:
... A copy is made only if needed.
Как узнать, нужна ли копия ravel
в данном случае? В общем -есть ли способ определить, создает ли конкретная операция копию или представление?