Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Індексування масивом цілих чисел | Індексація та Зрізи
Основи NumPy

Індексування масивом цілих чисел

Свайпніть щоб показати меню

Окрім базової індексації, коли використовується ціле число як окремий індекс, NumPy також дозволяє використовувати цілий одновимірний масив цілих чисел (також можливий список цілих чисел) для індексації.

Індексування масивом цілих чисел в одновимірних масивах

Кожен елемент масиву цілих чисел, який використовується для індексації, розглядається як індекс, тому, наприклад, array[[0, 1, 3]] отримує елементи з індексами 0, 1 та 3 у вигляді одновимірного масиву, якщо array є одновимірним масивом. Для індексації також можна використовувати масиви NumPy, але це робить код більш незручним.

12345678
import numpy as np array = np.array([23, 41, 7, 80, 3]) # Retrieving elements at indices 0, 1 and 3 print(array[[0, 1, 3]]) # Retrieving elements at indices 1, -1 and 2 in this order print(array[[1, -1, 2]]) # IndexError is thrown since index 5 is out of bounds print(array[[2, 5]])
Індексування цілочисельним масивом для одномірного масиву

Індексування цілочисельними масивами у двовимірних масивах

Щодо двовимірних та багатовимірних масивів, індексування цілочисельними масивами працює так само, як і для одномірних масивів уздовж кожної осі. Якщо використовується лише один цілочисельний масив для індексування, індексування відбувається лише по одній осі (вісь 0). Якщо використовуються два масиви, розділені комою, індексування відбувається по обох осях (вісь 0 та вісь 1).

Індексування лише по осі 0 за допомогою масиву цілих чисел повертає двовимірний масив. При доступі до елементів через таке індексування, елементи групуються у новий масив. Цей новий масив складається з одновимірних масивів, і таке групування збільшує розмірність на один, утворюючи двовимірний масив. Індексування по осі 0 та осі 1 за допомогою двох масивів цілих чисел повертає одновимірний масив.

Note
Примітка

Усі цілочисельні масиви, що використовуються для кожної з осей, повинні мати однакову форму.

123456789101112131415
import numpy as np array_2d = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # Retrieving first and the third row print(array_2d[[0, 2]]) # Retrieving the main diagonal elements print(array_2d[[0, 1, 2], [0, 1, 2]]) # Retrieving the first and third element of the second row print(array_2d[1, [0, 2]]) # IndexError is thrown, since index 3 along axis 0 is out of bounds print(array_2d[[0, 3], [0, 1]])
Індексування двовимірного масиву за допомогою цілочисельних масивів

Як видно, можна також поєднувати базове цілочисельне індексування та індексування за допомогою цілочисельних масивів.

Note
Примітка

Якщо хоча б один з індексів виходить за межі, буде згенеровано IndexError.

Щодо застосування, таке індексування корисне, коли потрібно вибрати конкретні елементи, які не розташовані поруч або не мають регулярного порядку. На відміну від зрізів, які працюють з безперервними діапазонами, цей метод дозволяє вибирати точно ті елементи, які потрібно отримати. Це зручно для вилучення розрізнених даних або перестановки значень у масиві.

1. Ви аналізуєте щомісячні дані продажів (у тисячах) для п’яти продуктів. Яким буде результат виконання цього коду?

2. Масив temperatures представляє собою щотижневі температури (у °C) трьох міст за понеділок, вівторок і середу. Оберіть правильний варіант для отримання температур у Берліні в понеділок і вівторок, а також у Мадриді у вівторок.

question mark

Ви аналізуєте щомісячні дані продажів (у тисячах) для п’яти продуктів. Яким буде результат виконання цього коду?

Виберіть правильну відповідь

question mark

Масив temperatures представляє собою щотижневі температури (у °C) трьох міст за понеділок, вівторок і середу. Оберіть правильний варіант для отримання температур у Берліні в понеділок і вівторок, а також у Мадриді у вівторок.

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 5
some-alt