Wpis z mikrobloga

Jak najprościej znaleźć sąsiadujące wartości w 2d array / matrix w pythonie?
grid = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1 2 3
4 5 6 sąsiadujące wartości dla 9 będą [5, 6, 8]
7 8 9 dla wartości 2 będą to [1, 3, 4, 5, 6]

szukam czegoś prostego i w miarę intuicyjnego w użyciu np. za pomocą zewnętrznych modułów (numpy pewnie ma coś podobnego ale nie mogę nic znaleźć)

#python #naukaprogramowania
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@jakuzii: Jak masz x i y pozycji to w numpy możesz zwrócić wycinek tablicy, a potem ją spłaszczyć.
Przykładowo grid 10x10:

grid = numpy.arange(100).reshape(10,10)
grid[ max(x-1,0) : x+2, max(y-1,0) : y+2 ].flatern()
To max(x-1,0) jest, bo niestety nie działa dla liczb ujemnych, z wyjściem poza tablice nie ma problemu.
  • Odpowiedz