Ich habe eine Reihe von binären NumPy-Arrays (die bewölkt (1s) und klar (0s) Himmel Pixel zu einem bestimmten Zeitpunkt) und haben sie zusammen, um die Gesamtzahl der Beobachtungen, wo Wolke ist zu finden in jedem Pixel vorhanden.Ändern/Überschreiben von NumPy-Array
Ich möchte jetzt den Prozentsatz der Wolke (Anzahl der Wolke (1s)/Gesamtbeobachtungen * 100) herausfinden, aber kann dies nicht in Python mit NumPy Arrays arbeiten, wie ich die ursprüngliche Variable ändern möchte.
Mein (vereinfacht) Code so weit ist:
import numpy as np
arr1 = np.array([1,0,1])
arr2 = np.array([0,0,1])
total1 = np.add(arr1, arr2)
>>> [1 0 2]
total2 = total1 #Purely to make multiple to elaborate my issue
variables = [total1, total2]
for x in variables:
x = x + 100
total1
>>> [1 0 2]
Grundsätzlich können Sie sehen, dass die total1
Variable nicht aktualisiert hat. Es arbeitet mit den folgenden:
for x in variables:
x += 100
total1
>>> [201, 200, 202]
ich aber nicht den Wert auf 100 erhöhen wollen, ich möchte den Prozentsatz, so etwas wie berechnen:
for x in variables:
x = x/1 * 100 #I have simplified the maths for ease of reading
#This is my desired output - note how total1 is updated, not created
total1
>>> [100, 0, 200]
aber das funktioniert nicht. Ich greife auf die Variablen auf diese Weise zu, da ich viel mehr als 2 habe und versuche, meinen Code zu automatisieren, um für n Variablen zu laufen (die Variablennamen gehen von total1> gesamt n).
Werfen Sie einen Blick auf numpy und seine Arrays. Dies ist ein perfekter Anwendungsfall. – Dschoni
Ich verstehe Ihren Kommentar nicht? Ich benutze NumPy-Arrays und es funktioniert nicht? Bitte erläutern? –
Können Sie Ihren Code klären? Ich denke, das Problem ist, dass Sie eine flache Kopie machen, wenn Sie eine tiefe Kopie machen wollten. Siehe https://docs.python.org/2/library/copy.html –