Hilfe bei Python Aufgabe?
Hallo,
ich hänge an folgender Aufgabe fest:
ich soll aus einem gegebenen 9 x W x H Array aus Verteilungsfunktionen das W x H Array der Dichte jeder Zelle berechnet.
Das Bild zeigt eine Skizze inklusive der Formel für die Dichte.
Ich komme echt nicht weiter und würde mich riesig über Hilfe freuen!
Viele Grüße,
bamu
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Informatik, Python
Alle Nachbarzellen von (w, h) in einem Feld der Größe W×H bekommst Du via
(w+x, h+y) for x in (-1, 0, 1) for y in (-1, 0, 1)
if x or y # ohne Feld (w+0, h+0)
if 0<=w+x<W if 0<=h+y<H
Also könnte es etwa so aussehen:
for w in range(W):
for h in range(H):
rho[w][h] = sum( f[w+x][h+y]
for x in (-1, 0, 1) for y in (-1, 0, 1)
if x or y if 0<=w+x < W if 0<= h+y < H)
ralphdieter
24.07.2022, 21:20
@bamu1234
Redest Du etwa von numpy? Das hat mit Python nicht mehr viel zu tun. Etwas wie np.sum(x.flat) müsste da passen.
Hallo, vielen Dank für die Antwort.
Aber ich glaube ich habe meine Frage etwas unkonkret formuliert.
Als Beispiel: array[[1.], [2.], [3.], [4.], [5.], [6.], [7.], [8.], [9.]] kann der Funktion übergeben werden und sie soll dann array[[45.0]] zurückgeben. Das ganze soll auch für mehrdimensionale Arrays funktionieren und möglichst effizient ohne for-Schleife funktionieren.