Как сделать отображение 3д массивов - PullRequest
0 голосов
/ 02 августа 2020

У меня есть массив numpy формы (20512512). Я хочу получить список массивов длиной 20, соответствующих массиву в точках (:, 100,100) (:, 105,100), (:, 110,100) и так далее. Я понимаю, что мне нужно использовать для этого карту, но как мне это сделать?

большое спасибо Yuval

1 Ответ

0 голосов
/ 02 августа 2020

вы можете добиться этого путем нарезки индексов.

вот пример для 1D-массива.

a = np.arange(200)
a[100::5]                           # from index 100 to end with increments of 5

>>> array([100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160,
           165, 170, 175, 180, 185, 190, 195])

для вашего случая

shape = [20,512,512]
arr   = np.random.randint(0, 100, shape)     # creating an array with the required shape
arr[:, 100::5, 100]                          # index slicing

>>> array([[88, 74, 45, ..., 72, 33, 63],
           [88, 26, 53, ..., 47, 78, 16],
           [26, 54, 85, ..., 89, 81, 66],
           ...,
           [76,  1, 11, ...,  3, 74,  7],
           [93, 34, 84, ..., 84, 73, 79],
           [77, 10, 61, ...,  4, 21, 19]])
arr[:, 100::5, 100].shape

>>> (20, 83)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...