0
私は2D numpy配列の値をマップしようとしています。つまり、行を(効率的に)反復処理し、行インデックスに基づいて値を追加しようとしています。numpyマップ2D配列値
私が試してみましたアプローチの一つである:
source = misc.imread(fname) # Load some image
img = np.array(source, dtype=np.float64)/255 # Cast and normalize values
w, h, d = tuple(img.shape) # Get dimensions
img = np.reshape(img, (w * h, d)) # Flatten 3D to 2D
# The actual problem:
# Map (R, G, B) pixels to (R, G, B, X, Y) to preserve position
img_data = ((px[0], px[1], px[2], idx % w, int(idx // w)) for idx, px in enumerate(img))
img_data = np.fromiter(img_data, dtype=tuple) # Get back to np.array
が、溶液が発生しますValueError: cannot create object arrays from iterator
を誰もがnumpy
で効率的にこのばかばかしいほど簡単な操作を実行する方法を提案することができますか?このライブラリがどれほど複雑であるかは、私の心の外です。なぜ、そのコードが7000x5000pxのメモリをいくつか消費しているのですか?
おかげ
があります'np.array(img_data)'を使ってすべてを 'np array 'に変換するだけですか? – Adorn