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

bookІндексування Масиву Цілими Числами

Окрім базової індексації, де використовується одне ціле число як індекс, 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]])
copy

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

Щодо двовимірних та багатовимірних масивів, індексування цілими масивами працює так само, як і в одномірних масивах, уздовж кожної осі. Якщо використовується лише один масив цілих чисел для індексування, індексування відбувається лише по одній осі (вісь 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]])
copy

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

Note
Примітка

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

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

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

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

question mark

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

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how negative indices work with integer array indexing?

What happens if the arrays used for indexing have different lengths?

Can you give more examples of combining basic and integer array indexing?

Awesome!

Completion rate improved to 3.7

bookІндексування Масиву Цілими Числами

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

Окрім базової індексації, де використовується одне ціле число як індекс, 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]])
copy

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

Щодо двовимірних та багатовимірних масивів, індексування цілими масивами працює так само, як і в одномірних масивах, уздовж кожної осі. Якщо використовується лише один масив цілих чисел для індексування, індексування відбувається лише по одній осі (вісь 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]])
copy

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

Note
Примітка

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

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

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

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

question mark

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

Select the correct answer

question mark

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

Select the correct answer

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

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

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

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