Hilfe bei Python Aufgabe?

1 Antwort

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)
bamu1234 
Fragesteller
 24.07.2022, 21:05

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.

0
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.

0