Зміна Форми Масивів
Зміна форми масиву у NumPy дозволяє змінювати форму масиву без втрати жодного елемента. Це часто використовується в машинному навчанні, оскільки багато функцій і методів бібліотек машинного навчання вимагають, щоб масиви мали певну форму.
Форми масивів
Форма масиву NumPy — це кортеж, що вказує кількість елементів по кожному виміру (осі).
Наприклад, одномірний масив довжини 5 має форму (5,), тоді як двовимірний масив з 3 рядками та 4 стовпцями має форму (3, 4):
1234import 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)
ndarray.reshape()
Масиви NumPy мають метод .reshape() для зміни форми. Необхідно лише передати форму нового масиву у вигляді цілого числа, кортежу цілих чисел або цілих чисел як окремих аргументів.
Цей метод не змінює масив на місці, а повертає новий масив.
Насправді, .reshape() повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також впливатимуть на оригінальний масив.
123456789import 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)
Кількість елементів у зміненому масиві повинна бути такою ж, як і в оригінальному масиві, тому не можна передавати довільну форму.
У нашому прикладі зміна форми масиву на 3 рядки та 4 стовпці (3x4) або на 2 блоки, кожен з яких містить 2 рядки та 3 стовпці (2x2x3) все одно дає загалом 12 елементів.
Зміна форми з -1
У NumPy, коли використовується -1 у методі .reshape(), розмір цієї виміри автоматично обчислюється на основі розміру вихідного масиву, при цьому загальна кількість елементів залишається незмінною.
Використання .reshape(-1, 1) особливо корисне у машинному навчанні, коли потрібно перетворити одномірний масив у двовимірний масив з одним стовпцем. Кількість рядків у цьому випадку дорівнює кількості елементів (обчислюється автоматично).
123456import 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)
Переформатований масив зберігається як двовимірний масив з 5 рядками та 1 стовпцем, що має форму (5, 1). На відміну від цього, початковий одновимірний масив має форму (5,), тобто кортеж з одним елементом. Для будь-якого одновимірного масиву форма завжди має вигляд (n,), де n — кількість елементів.
numpy.reshape()
Функція reshape() у NumPy ідентична методу .reshape(), але першим аргументом необхідно передати масив. Для параметра shape можна передати або кортеж цілих чисел, або одне ціле число, наприклад: np.reshape(array, (3, 4)):
123456import 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)
Swipe to start coding
У вас є масив sales_data_2021 із змодельованими квартальними даними продажів для двох продуктів у 2021 році. Перші 4 елементи представляють квартальні продажі першого продукту, а останні 4 елементи — квартальні продажі другого продукту.
- Використайте відповідний метод масиву
sales_data_2021, щоб змінити його форму на двовимірний масив. - У першому рядку повинні бути квартальні продажі першого продукту.
- У другому рядку повинні бути квартальні продажі другого продукту.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.7
Зміна Форми Масивів
Свайпніть щоб показати меню
Зміна форми масиву у NumPy дозволяє змінювати форму масиву без втрати жодного елемента. Це часто використовується в машинному навчанні, оскільки багато функцій і методів бібліотек машинного навчання вимагають, щоб масиви мали певну форму.
Форми масивів
Форма масиву NumPy — це кортеж, що вказує кількість елементів по кожному виміру (осі).
Наприклад, одномірний масив довжини 5 має форму (5,), тоді як двовимірний масив з 3 рядками та 4 стовпцями має форму (3, 4):
1234import 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)
ndarray.reshape()
Масиви NumPy мають метод .reshape() для зміни форми. Необхідно лише передати форму нового масиву у вигляді цілого числа, кортежу цілих чисел або цілих чисел як окремих аргументів.
Цей метод не змінює масив на місці, а повертає новий масив.
Насправді, .reshape() повертає представлення (view) оригінального масиву, тому будь-які зміни у зміненому масиві також впливатимуть на оригінальний масив.
123456789import 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)
Кількість елементів у зміненому масиві повинна бути такою ж, як і в оригінальному масиві, тому не можна передавати довільну форму.
У нашому прикладі зміна форми масиву на 3 рядки та 4 стовпці (3x4) або на 2 блоки, кожен з яких містить 2 рядки та 3 стовпці (2x2x3) все одно дає загалом 12 елементів.
Зміна форми з -1
У NumPy, коли використовується -1 у методі .reshape(), розмір цієї виміри автоматично обчислюється на основі розміру вихідного масиву, при цьому загальна кількість елементів залишається незмінною.
Використання .reshape(-1, 1) особливо корисне у машинному навчанні, коли потрібно перетворити одномірний масив у двовимірний масив з одним стовпцем. Кількість рядків у цьому випадку дорівнює кількості елементів (обчислюється автоматично).
123456import 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)
Переформатований масив зберігається як двовимірний масив з 5 рядками та 1 стовпцем, що має форму (5, 1). На відміну від цього, початковий одновимірний масив має форму (5,), тобто кортеж з одним елементом. Для будь-якого одновимірного масиву форма завжди має вигляд (n,), де n — кількість елементів.
numpy.reshape()
Функція reshape() у NumPy ідентична методу .reshape(), але першим аргументом необхідно передати масив. Для параметра shape можна передати або кортеж цілих чисел, або одне ціле число, наприклад: np.reshape(array, (3, 4)):
123456import 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)
Swipe to start coding
У вас є масив sales_data_2021 із змодельованими квартальними даними продажів для двох продуктів у 2021 році. Перші 4 елементи представляють квартальні продажі першого продукту, а останні 4 елементи — квартальні продажі другого продукту.
- Використайте відповідний метод масиву
sales_data_2021, щоб змінити його форму на двовимірний масив. - У першому рядку повинні бути квартальні продажі першого продукту.
- У другому рядку повинні бути квартальні продажі другого продукту.
Рішення
Дякуємо за ваш відгук!
single