Індексування Масиву Цілими Числами
Окрім базової індексації, де використовується одне ціле число як індекс, NumPy також дозволяє використовувати цілий одновимірний масив цілих чисел (також можливий список цілих чисел) для індексації.
Індексування масивом цілих чисел в одновимірних масивах
Кожен елемент масиву цілих чисел, який використовується для індексації, розглядається як індекс, тому, наприклад, array[[0, 1, 3]] отримує елементи з індексами 0, 1 та 3 у вигляді одновимірного масиву, якщо array є одновимірним масивом. Для індексації також можна використовувати масиви NumPy, але це робить код більш незручним.
12345678import 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 за допомогою двох масивів цілих чисел повертає одновимірний масив.
Усі цілі масиви, що використовуються для кожної з осей, повинні мати однакову форму.
123456789101112131415import 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]])
Як бачите, можна також поєднувати базову індексацію цілими числами та індексацію масивом цілих чисел.
Якщо хоча б один з індексів виходить за межі, буде згенеровано IndexError.
Щодо застосування, така індексація корисна, коли потрібно вибрати конкретні елементи, які не розташовані поруч або не мають регулярного порядку. На відміну від зрізів, які працюють з безперервними діапазонами, цей метод дозволяє обирати точно ті елементи, які потрібно отримати. Це зручно для вибірки розрізнених даних або перестановки значень у масиві.
1. Ви аналізуєте щомісячні дані про продажі (у тисячах) для п’яти продуктів. Яким буде вивід цього коду?
2. Масив temperatures представляє тижневі температури (у °C) трьох міст за понеділок, вівторок і середу. Оберіть правильний варіант для отримання температур Берліна у понеділок і вівторок, а також Мадрида у вівторок.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Індексування Масиву Цілими Числами
Свайпніть щоб показати меню
Окрім базової індексації, де використовується одне ціле число як індекс, NumPy також дозволяє використовувати цілий одновимірний масив цілих чисел (також можливий список цілих чисел) для індексації.
Індексування масивом цілих чисел в одновимірних масивах
Кожен елемент масиву цілих чисел, який використовується для індексації, розглядається як індекс, тому, наприклад, array[[0, 1, 3]] отримує елементи з індексами 0, 1 та 3 у вигляді одновимірного масиву, якщо array є одновимірним масивом. Для індексації також можна використовувати масиви NumPy, але це робить код більш незручним.
12345678import 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 за допомогою двох масивів цілих чисел повертає одновимірний масив.
Усі цілі масиви, що використовуються для кожної з осей, повинні мати однакову форму.
123456789101112131415import 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]])
Як бачите, можна також поєднувати базову індексацію цілими числами та індексацію масивом цілих чисел.
Якщо хоча б один з індексів виходить за межі, буде згенеровано IndexError.
Щодо застосування, така індексація корисна, коли потрібно вибрати конкретні елементи, які не розташовані поруч або не мають регулярного порядку. На відміну від зрізів, які працюють з безперервними діапазонами, цей метод дозволяє обирати точно ті елементи, які потрібно отримати. Це зручно для вибірки розрізнених даних або перестановки значень у масиві.
1. Ви аналізуєте щомісячні дані про продажі (у тисячах) для п’яти продуктів. Яким буде вивід цього коду?
2. Масив temperatures представляє тижневі температури (у °C) трьох міст за понеділок, вівторок і середу. Оберіть правильний варіант для отримання температур Берліна у понеділок і вівторок, а також Мадрида у вівторок.
Дякуємо за ваш відгук!