Перетворення Масивів у Плоский Вигляд
Згортання масиву означає перетворення його з багатовимірного масиву у одновимірний масив, тобто розгортання його вмісту.
Ця операція корисна, коли потрібно обробити елементи масиву по одному або зробити дані більш придатними для певних алгоритмів.
У NumPy існує три основні способи згортання масиву:
- Використання методу
ndarray.reshape(-1)або функціїnumpy.reshape(array, -1); - Використання методу
ndarray.ravel()або функціїnumpy.ravel(array); - Використання методу
ndarray.flatten().
reshape(-1)
Метод .reshape(-1) або функція reshape(array, -1) повертає суміжний згортаний масив з тією ж кількістю елементів.
Як вже згадувалося у попередньому розділі, -1 автоматично обчислює розмір виміру на основі розміру початкового масиву. Оскільки передається лише одне ціле число для shape, повертається одновимірний масив з тією ж кількістю елементів.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
Метод .reshape() або відповідна функція повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також вплинуть на оригінальний масив.
Використання flattened_array = np.reshape(array_2d, -1) може бути альтернативою виклику методу.
ravel()
Метод ndarray.ravel() або функція numpy.ravel(array) працюють так само, як і reshape(-1), і також повертають представлення (view) оригінального масиву:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) можна використовувати замість виклику методу.
ndarray.flatten()
Якщо потрібна копія початкового масиву, а не представлення, використовуйте метод .flatten():
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Завжди можна скопіювати представлення масиву, щоб створити окремий об'єкт і змінювати цю копію без впливу на оригінальний масив.
Swipe to start coding
- Коректне використання методу
.flatten()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_flattened. - Коректне використання методу
.reshape()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_reshaped. - Використання методу
.ravel()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_raveled. - Серед трьох створених плоских масивів оберіть той, який є копією оригінального масиву, а не представленням (view), і присвойте значення
100його першому елементу (використовуйте позитивну індексацію).
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What is the difference between a view and a copy in NumPy?
When should I use flatten() instead of reshape(-1) or ravel()?
Can you explain what happens if I modify the flattened array in each case?
Awesome!
Completion rate improved to 3.7
Перетворення Масивів у Плоский Вигляд
Свайпніть щоб показати меню
Згортання масиву означає перетворення його з багатовимірного масиву у одновимірний масив, тобто розгортання його вмісту.
Ця операція корисна, коли потрібно обробити елементи масиву по одному або зробити дані більш придатними для певних алгоритмів.
У NumPy існує три основні способи згортання масиву:
- Використання методу
ndarray.reshape(-1)або функціїnumpy.reshape(array, -1); - Використання методу
ndarray.ravel()або функціїnumpy.ravel(array); - Використання методу
ndarray.flatten().
reshape(-1)
Метод .reshape(-1) або функція reshape(array, -1) повертає суміжний згортаний масив з тією ж кількістю елементів.
Як вже згадувалося у попередньому розділі, -1 автоматично обчислює розмір виміру на основі розміру початкового масиву. Оскільки передається лише одне ціле число для shape, повертається одновимірний масив з тією ж кількістю елементів.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
Метод .reshape() або відповідна функція повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також вплинуть на оригінальний масив.
Використання flattened_array = np.reshape(array_2d, -1) може бути альтернативою виклику методу.
ravel()
Метод ndarray.ravel() або функція numpy.ravel(array) працюють так само, як і reshape(-1), і також повертають представлення (view) оригінального масиву:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) можна використовувати замість виклику методу.
ndarray.flatten()
Якщо потрібна копія початкового масиву, а не представлення, використовуйте метод .flatten():
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Завжди можна скопіювати представлення масиву, щоб створити окремий об'єкт і змінювати цю копію без впливу на оригінальний масив.
Swipe to start coding
- Коректне використання методу
.flatten()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_flattened. - Коректне використання методу
.reshape()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_reshaped. - Використання методу
.ravel()для перетворенняexam_scoresу плоский масив і збереження результату вexam_scores_raveled. - Серед трьох створених плоских масивів оберіть той, який є копією оригінального масиву, а не представленням (view), і присвойте значення
100його першому елементу (використовуйте позитивну індексацію).
Рішення
Дякуємо за ваш відгук!
single