最小限の作業例として、2D 配列をデジタル化してみましょう。numpy.digitize
1D 配列が必要です。
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))
ドキュメントには次のように書かれています:
... コピーは必要な場合にのみ作成されます。
ravel
この場合、コピーが「必要」かどうかはどうすればわかりますか? 一般に、特定の操作がコピーまたはビューを作成するかどうかを判断できる方法はありますか?