Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Зміна Форми Масивів | Поширені Функції NumPy
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Основи NumPy
close
Секція 3. Розділ 4
single

single

bookЗміна Форми Масивів

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

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

Форми масивів

Note
Визначення

Форма масиву NumPy — це кортеж, що вказує кількість елементів по кожному виміру (осі).

Наприклад, одномірний масив довжини 5 має форму (5,), тоді як двовимірний масив з 3 рядками та 4 стовпцями має форму (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

Масиви NumPy мають метод .reshape() для зміни форми. Необхідно лише передати форму нового масиву у вигляді цілого числа, кортежу цілих чисел або окремих цілих чисел як аргументи.

Цей метод не змінює масив на місці, а повертає новий масив.

Note
Примітка

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

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy
Note
Примітка

Кількість елементів у зміненому масиві повинна збігатися з кількістю елементів в оригінальному масиві, тому не можна передавати довільну форму.

У нашому прикладі зміна форми масиву на 3 рядки та 4 стовпці (3x4) або на 2 блоки, кожен з яких містить 2 рядки та 3 стовпці (2x2x3) все одно дає загалом 12 елементів.

Зміна форми з -1

У NumPy при використанні -1 у методі .reshape() розмір цієї виміри автоматично обчислюється на основі розміру початкового масиву, при цьому загальна кількість елементів залишається незмінною.

Використання .reshape(-1, 1) особливо корисне у машинному навчанні, коли потрібно перетворити одномірний масив у двовимірний масив з одним стовпцем. Кількість рядків у цьому випадку дорівнює кількості елементів (обчислюється автоматично).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Переформатований масив зберігається як 2D-масив з 5 рядками та 1 стовпцем, що має форму (5, 1). На відміну від цього, початковий 1D-масив має форму (5,), тобто кортеж з одним елементом. Для будь-якого 1D-масиву форма завжди виглядає як (n,), де n — кількість елементів.

numpy.reshape()

Функція reshape() у NumPy ідентична методу .reshape(), але першим аргументом потрібно передати масив. Для параметра shape можна передати або кортеж цілих чисел, або одне ціле число, наприклад: np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Завдання

Swipe to start coding

У вас є масив sales_data_2021 із змодельованими квартальними даними продажів для двох продуктів у 2021 році. Перші 4 елементи представляють квартальні продажі першого продукту, а останні 4 елементи — квартальні продажі другого продукту.

  1. Використайте відповідний метод масиву sales_data_2021, щоб змінити його форму на двовимірний масив.
  2. У першому рядку повинні бути квартальні продажі першого продукту.
  3. У другому рядку повинні бути квартальні продажі другого продукту.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

some-alt