np Arrays sind unveränderlich - "Zuweisungsziel ist schreibgeschützt"

FD ** - Ich bin sowohl ein Python-Newb als auch ein Stack-Overflow-Newb, wie Sie sehen können. Ich habe die Frage aufgrund von Kommentaren bearbeitet.

Mein Ziel ist es, eine Reihe von PNG-Dateien zu lesen, Bilder mit Image.open ('Dateiname') zu erstellen und sie in einfache 2D-Arrays mit nur 1s und 0s zu konvertieren. Das PNG hat das Format RGBA mit meist nur 255 und 0 als Werten. In den Bildern sind die Ränder häufig Grauwerte, die ich im 2D-Array vermeiden möchte.

Ich habe das 2D-Array aus dem Bild mit np.asarray (Image) erstellt und dabei nur den Kanal 'Red' abgerufen. In jedem 2d-Bildarray möchte ich den Zellenwert auf 1 setzen, wenn der aktuelle Wert nicht Null ist.

So, ich schleife in das 2d-Array und überprüfe den Zellenwert und versuche, ihn auf 1 zu setzen.

Es gibt mir einen Fehler, der angibt, dass das Array schreibgeschützt ist. Ich habe mehrere Stapelüberlauf-Threads durchgelesen, in denen diskutiert wurde, dass np-Arrays unveränderlich sind und es noch ein bisschen unklar ist. Ich benutze PIL und numpy

Danke @ user2314737. Ich werde versuchen, dieses Flag zu setzen. @Eric, danke auch für deine Kommentare.

from PIL import Image
import numpy as np

Der entsprechende Code:

prArray = [np.asarray(img)[:, :, 0] for img in problem_images]

for img in prArray:
    for x in range(184):
        for y in range(184):
            if img[x][y] != 0:
                img[x][y] = 1

Der Fehler "Zuweisungsziel ist schreibgeschützt" befindet sich in der letzten Zeile.

Vielen Dank an alle für die Hilfe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage