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

single

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), і також повертають подання оригінального масиву:

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
Примітка

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

Завдання

Проведіть, щоб почати кодувати

  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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

some-alt