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

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

Переформатований масив зберігається як двовимірний масив з 5 рядками та 1 стовпцем, що має форму (5, 1). На відміну від цього, початковий одновимірний масив має форму (5,), тобто кортеж з одним елементом. Для будь-якого одновимірного масиву форма завжди має вигляд (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. У другому рядку повинні бути квартальні продажі другого продукту.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

Awesome!

Completion rate improved to 3.7

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

Переформатований масив зберігається як двовимірний масив з 5 рядками та 1 стовпцем, що має форму (5, 1). На відміну від цього, початковий одновимірний масив має форму (5,), тобто кортеж з одним елементом. Для будь-якого одновимірного масиву форма завжди має вигляд (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

some-alt