Индексация массивами
Урок 12 из 18 курса Основы Numpy на Coddy.
Еще одна замечательная особенность Numpy — возможность выбирать определенные индексы из массива. Поместите List внутрь квадратных скобок [] и укажите, какие индексы вы хотите выбрать: ary[indices]
Пример 1
Извлечь 0-й, 2-й, 4-й элементы:
x = np.arange(5, 15) # np.array([5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
x[[0, 2, 4]]
>>> [5, 7, 9]Пример 2
Извлечь первый и последний элементы (но теперь из двумерного массива)
x = np.array([[0, 1], [2, 3], [4, 5], [6, 7]])
x[[0, -1]]
>>> [[0, 1], [6, 7]]А как насчет извлечения конкретных элементов из двумерного массива?
Мы используем ary[[Row indices], [Element indices]]
Пример 3
Извлечь первый и последний элементы из 2-й и 3-й строк
x = np.array([
[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23],
])
x[[1, 1, 2, 2], [0, -1, 0, -1]]
>>> [6, 11, 12, 17]Что произошло?
Numpy смотрит на соответствующий индекс каждого списка внутри скобок [] и возвращает элемент:
x[[1, 1, 2, 2], [0, -1, 0, -1]]
x[1, 0] # --> 6x[1, -1] # --> 11x[2, 0] # --> 12x[2, -1] # --> 17
Как получить первый и последний индекс из всех строк?
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоДан двумерный массив ary, извлеките все числа, делящиеся на пять без остатка (0, 5, 10, ...), используя методы, изученные в этом уроке.
Попробуйте сами
import numpy as np
'''
ary looks like:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
'''
ary = np.arange(0, 20).reshape(4, 5) # don't change ary
res = ary[] # <-- Complete indices
print(str(res).replace("\n", "")) # don't change this lineВсе уроки раздела Основы Numpy
2Создание N-мерных массивов
Высшие размерностиПонимание формЗаполнение фиксированными значениямиТипы NumpyДиапазоныИзменение формы3Индексация массивов Numpy
Базовая индексацияСрезыИндексация массивамиМногомерная индексацияБулева индексацияИндексация по нескольким условиям