Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Перетворення Масивів у Плоский Вигляд | Поширені Функції NumPy
Ultimate NumPy

bookПеретворення Масивів у Плоский Вигляд

Згортання масиву означає перетворення його з багатовимірного масиву у одновимірний масив, тобто розгортання його вмісту.

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

У NumPy існує три основні способи згортання масиву:

  • Використання методу ndarray.reshape(-1) або функції numpy.reshape(array, -1);
  • Використання методу ndarray.ravel() або функції numpy.ravel(array);
  • Використання методу ndarray.flatten().

reshape(-1)

Метод .reshape(-1) або функція reshape(array, -1) повертає суміжний згортаний масив з тією ж кількістю елементів.

Як вже згадувалося у попередньому розділі, -1 автоматично обчислює розмір виміру на основі розміру початкового масиву. Оскільки передається лише одне ціле число для shape, повертається одновимірний масив з тією ж кількістю елементів.

1234567
import 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}')
copy

Метод .reshape() або відповідна функція повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також вплинуть на оригінальний масив.

Використання flattened_array = np.reshape(array_2d, -1) може бути альтернативою виклику методу.

ravel()

Метод ndarray.ravel() або функція numpy.ravel(array) працюють так само, як і reshape(-1), і також повертають представлення (view) оригінального масиву:

1234567
import 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}')
copy

flattened_array = np.ravel(array_2d) можна використовувати замість виклику методу.

ndarray.flatten()

Якщо потрібна копія початкового масиву, а не представлення, використовуйте метод .flatten():

1234567
import 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}')
copy
Note
Примітка

Завжди можна скопіювати представлення масиву, щоб створити окремий об'єкт і змінювати цю копію без впливу на оригінальний масив.

Завдання

Swipe to start coding

  1. Коректне використання методу .flatten() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_flattened.
  2. Коректне використання методу .reshape() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_reshaped.
  3. Використання методу .ravel() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_raveled.
  4. Серед трьох створених плоских масивів оберіть той, який є копією оригінального масиву, а не представленням (view), і присвойте значення 100 його першому елементу (використовуйте позитивну індексацію).

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 3.7

bookПеретворення Масивів у Плоский Вигляд

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

Згортання масиву означає перетворення його з багатовимірного масиву у одновимірний масив, тобто розгортання його вмісту.

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

У NumPy існує три основні способи згортання масиву:

  • Використання методу ndarray.reshape(-1) або функції numpy.reshape(array, -1);
  • Використання методу ndarray.ravel() або функції numpy.ravel(array);
  • Використання методу ndarray.flatten().

reshape(-1)

Метод .reshape(-1) або функція reshape(array, -1) повертає суміжний згортаний масив з тією ж кількістю елементів.

Як вже згадувалося у попередньому розділі, -1 автоматично обчислює розмір виміру на основі розміру початкового масиву. Оскільки передається лише одне ціле число для shape, повертається одновимірний масив з тією ж кількістю елементів.

1234567
import 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}')
copy

Метод .reshape() або відповідна функція повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також вплинуть на оригінальний масив.

Використання flattened_array = np.reshape(array_2d, -1) може бути альтернативою виклику методу.

ravel()

Метод ndarray.ravel() або функція numpy.ravel(array) працюють так само, як і reshape(-1), і також повертають представлення (view) оригінального масиву:

1234567
import 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}')
copy

flattened_array = np.ravel(array_2d) можна використовувати замість виклику методу.

ndarray.flatten()

Якщо потрібна копія початкового масиву, а не представлення, використовуйте метод .flatten():

1234567
import 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}')
copy
Note
Примітка

Завжди можна скопіювати представлення масиву, щоб створити окремий об'єкт і змінювати цю копію без впливу на оригінальний масив.

Завдання

Swipe to start coding

  1. Коректне використання методу .flatten() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_flattened.
  2. Коректне використання методу .reshape() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_reshaped.
  3. Використання методу .ravel() для перетворення exam_scores у плоский масив і збереження результату в exam_scores_raveled.
  4. Серед трьох створених плоских масивів оберіть той, який є копією оригінального масиву, а не представленням (view), і присвойте значення 100 його першому елементу (використовуйте позитивну індексацію).

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

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

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

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

single

some-alt