Numpy Indexing и создание нового массива - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь понять, что происходит внутри оператора print.Я знаю, что для создания двумерного массива происходит индексация, но я не понимаю порядка

x = np.arange(0,2*np.pi,0.001)
X = np.concatenate(([x], [np.ones(y.shape[0])]), axis=0)

print(X[[[0,1],[0,1]],[[0,0],[-1,-1]]])

Производит:

array([[0.   , 1.   ],
       [6.283, 1.   ]])

1 Ответ

0 голосов
/ 01 февраля 2019

Я посмотрел документацию и думаю, что следующий пример оттуда должен объяснить, что индексирование:

Из массива 4x3 угловые элементы должны быть выбраны с использованием расширенной индексации.Таким образом, необходимо выбрать все элементы, для которых столбец является одним из [0, 2], а строка является одним из [0, 3].Чтобы использовать расширенную индексацию, нужно явно выбрать все элементы.Используя метод, описанный ранее, можно написать:

x = array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [9, 10, 11]])
rows = np.array([[0, 0],
                 [3, 3]], dtype=np.intp)
columns = np.array([[0, 2],
                    [0, 2]], dtype=np.intp)
x[rows, columns]

последняя строка дает код

array([[0, 2],
       [9, 11]])

в вашем вопросе, кажется, выполняет ту же операцию (но с другими значениями), что инапример, но с использованием индексов хлопания напрямую, а не создания rows и columns.

X[[[0, 1], [0, 1]], [[0, 0], [-1, -1]]] могут быть прочитаны как элементы get, считая от 0: (в 0 th или 1 строка) и (в 0 или последнем столбце)

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