Найти - Пользователи
Полная версия: Прошу помощь в решении задачи.
Начало » Центр помощи » Прошу помощь в решении задачи.
1 2
Nik2
Задачка по нампи

Выведите все 8 соседних элементов в любом формате.
X X X
X 0 X
X X X
для элемента “о” элементы “х” являются соседними
VadimK
 print ("8 элементов")
ZerG
решил. что дальше?
Nik2
ZerG
решил. что дальше?
Ну так выложите..
ZerG
Nik2
положил.
Все ще не понимаю что дальше.
Nik2
На хуй пошел, уебок умничающий!
py.user.next
Nik2
Задачка по нампи
Понятно.

Nik2
Выведите все 8 соседних элементов в любом формате.
X X X
X 0 X
X X X
для элемента “о” элементы “х” являются соседними
Непонятно.

В общем смысле вывод подмножества массива:

Тут можно почитать туториал по операциям с массивами
https://numpy.org/doc/stable/user/quickstart.html

  
>>> import numpy as np
>>> 
>>> arr = np.array(['x'] * 100).reshape(10, 10)
>>> print(arr)
[['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']]
>>> 
>>> arr[4][4] = 'o'
>>> print(arr)
[['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'o' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']]
>>> 
>>> out = arr[3:6,3:6]
>>> print(out)
[['x' 'x' 'x']
 ['x' 'o' 'x']
 ['x' 'x' 'x']]
>>>

Через запятую указываются оси X и Y, а срезы указывают с какого по какой элемент в данной оси, внутри которой срез находится, брать.

Параметризованный код:
  
>>> import numpy as np
>>> 
>>> def create_array(rows, cols, point_i, point_j, spacechar, pointchar):
...     out = np.array([spacechar] * rows * cols).reshape(rows, cols)
...     out[point_i][point_j] = pointchar
...     return out
... 
>>> def get_block(arr, point_i, point_j, radius):
...     out = arr[point_i - radius:point_i + radius + 1,
...               point_j - radius:point_j + radius + 1]
...     return out
... 
>>> arr = create_array(10, 10, 4, 4, 'x', 'o')
>>> block = get_block(arr, 4, 4, 1)
>>> 
>>> print(arr)
[['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'o' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']
 ['x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x' 'x']]
>>> print(block)
[['x' 'x' 'x']
 ['x' 'o' 'x']
 ['x' 'x' 'x']]
>>>


tags: numpy array slice
ZerG
То есть ТС пишет
py.user.next
На хуй пошел, уебок умничающий!

А ты ему решение?
Перевожу нахуй с себя на тебя py.user.next.
py.user.next
ZerG
То есть ТС пишет
Он не пишет, он тебе отвечает. То есть ты решил над ним поиздеваться, а он тебя послал на хуй. То есть ты сам в этом виноват. В реале он бы тебе ебучку разбил, а ты бы говорил “я его полчаса доставал, а он мне по ебалу дал, это он виноват, что дерётся”.

ZerG
А ты ему решение?
А я ему решение. Потому что это форум по программированию, а не по какой-то хуйне.

Ну, и мне самому интересно разобраться в numpy, потому что я её не изучал, так как её не портировали поначалу под третий питон, а сейчас портировали и поэтому можно уже изучать её, но времени у меня на это нет, поэтому могу только по чуть-чуть залазить и иногда что-то делать. Пока ему делал решение, разобрался, как эти оси там устроены.

Так что я пользу получил от этого. Ты ничего не получил, тебя только на хуй послали.
FishHook
py.user.next
py.user.next
То есть ты сам в этом виноват. В реале он бы тебе ебучку разбил
В реале ебучку бьют как раз за посылание взрослых людей нахуй.
py.user.next
А я ему решение.
В следующий раз еще за щеку возьми, раз такой толерантный.
py.user.next
Потому что это форум по программированию
Именно. В данном посте нет ни слова о программировании. Есть малолетний идиот и есть кармадрочер. Давай я тебе плюсов отсыплю, подрочи на ночь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB