Ich versuche, Werte von 2D-numpy-Array abzubilden, d. H. Um (effizient) über Zeilen zu iterieren und Werte basierend auf Zeilenindex anzufügen.numpy map 2D-Array-Werte
Ein Ansatz, die ich versucht habe, ist:
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
aber die Lösung aufwirft: ValueError: cannot create object arrays from iterator
Kann jemand empfehlen, wie effizient in numpy
diese absurden einfache Operation durchzuführen? Ich weiß nicht, wie kompliziert diese Bibliothek ist ... Und warum verbraucht dieser Code ein paar Gigabyte Speicher für 7000x5000 px?
Dank
, warum Sie nicht eine Liste von was auch immer SieFormal zu erzeugen will, und wandle dann alles einfach in 'np array' mit' np.array (img_data) '? – Adorn