Російські Блоги
Використання функцій зміни форми та стиснення в масивах numpy
Посилання: http://blog.csdn.net/zenghaitao0128/article/details/78512715, внесло кілька власних доповнень.
Функція зміни форми і функція стиснення в numpy є функціями, що часто використовуються при написанні коду для глибокого вивчення і вимагають глибокого розуміння.
Серед них функція зміни форми використовується для регулювання осі та розмірів масиву, а функція стиснення використовується таким чином:
Синтаксис: numpy.squeeze (a, axis = None)
1) представляє вхідний масив;
2) вісь використовується для вказівки видаленого виміру, але зазначений вимір має бути одним виміром, інакше буде повідомлено про помилку;
3) Значення осі може бути None чи int чи кортежем цілих чисел, необов'язково. Якщо вісь порожня, всі одновимірні записи видаляються;
4) Значення, що повертається: масив
5) не змінюватиме вихідний масив;
Функція: видалити одновимірні записи з форми масиву, тобто видалити 1 вимір у формі
Наприклад:
функції зміни форми та стиснення numpy:
import numpy як np e = np.arange(10) print(e)
Одновимірний масив: [0 1 2 3 4 5 6 7 8 9]
f = e.reshape(1,1,10) print(f)
Тривимірний масив: (десять елементів у третій квадратній дужці)
[[[0 1 2 3 4 5 6 7 8 9]]], ранг перших двох вимірів дорівнює 1
g = f.reshape(1,10,1) print(g)
Тривимірний масив: (десять елементів у другій квадратній дужці)
[[[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]]]
h = e.reshape(10,1,1) print(h)
Тривимірний масив: (перша квадратна дужка має 10 елементів) [[[0]] [[1]] [[2]] [[3]] [[4]] [[5]] ]] [[8]] [[9]]]
Стиснення можна використовувати для видалення одного вимірювання з масиву (вкажіть вісь, починаючи з 0.) Нижче наведено параметр без осі, що видаляє всі одновимірні осі:
m = np.squeeze(h) print(m)
Видалити кількість осей, наведених нижче
n = np.squeeze(h,2) print(n)
Видаліть третю вісь у двовимірний масив з розмірами (10,1): [[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
p = np.squeeze(g,2) print(p)
Видаліть другу вісь, щоб отримати двовимірний масив з розмірами (1,10):
[[0 1 2 3 4 5 6 7 8 9]]
p = np.squeeze(g,0) print(p)
Видаліть вісь 0, щоб отримати двомірний масив з розмірами (10,1):
[[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]]
У малюванні matplotlib, не одномірні масиви будуть мати проблеми при побудові, (1, nx) не працюватиме, але (nx,) може, і (nx, 1) також може.
import matplotlib.pyplot as plt squares =np.array([[1,4,9,16,25]]) print(squares.shape)
Розмір квадрата (1,5), і ви не можете намалювати:
Зробіть такі зміни:
plt.plot(np.squeeze(squares)) plt.show()
Розмір квадрата (5,), і ви можете намалювати:
Або внесіть такі зміни
squares1 = squares.reshape(5,1) plt.plot(squares1) plt.show()
Розмір квадрата (5,1), і ви можете намалювати:
Як працює numpy reshape: повне пояснення з прикладами
Numpy reshape - це метод/функція бібліотеки NumPy, яка дозволяє змінювати форму (розмірність) масиву без зміни даних. Він повертає новий масив із зазначеною формою. Приклад:
import numpy as np # Вихідний масив розміром 12 елементів a = np.arange(12) # Змінюємо форму масиву на (3, 4) reshaped_array = np.reshape(a, (3, 4)) print(reshaped_array)
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]
Детальна відповідь
numpy reshape як працює
Функція reshape() у бібліотеці NumPy використовується зміни форми масиву без зміни його даних. Вона дозволяє нам змінювати розмірність масиву, що може бути корисним у різних сценаріях програмування та аналізу даних. Давайте розглянемо, як працює функція reshape(). Вона приймає один обов'язковий аргумент – кортеж, який задає нову форму масиву. Нова форма повинна бути сумісна з вихідним масивом, тобто кількість елементів у новій формі повинна дорівнювати кількості елементів у вихідному масиві. Якщо ця умова виконується, функція reshape() створить новий масив із зазначеною формою та поверне його.
Приклад використання функції reshape():
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) reshaped_arr = np.reshape(arr, (2, 3)) print(reshaped_arr)
У цьому прикладі ми маємо вихідний масив arr з елементами [1, 2, 3, 4, 5, 6]. Ми використовуємо функцію reshape() з аргументом (2, 3), що означає, що хочемо отримати новий масив з формою (2, 3). Функція reshape() створює новий масив із зазначеною формою та повертає його. В результаті ми отримаємо новий масив reshaped_arr з формою (2, 3) та елементами [[1, 2, 3], [4, 5, 6]]. Можна також використовувати негативні значення в кортежі, що передається у функцію reshape(). Негативне значення означає, що розмірність масиву буде обчислена автоматично на основі інших розмірностей та кількості елементів. Давайте розглянемо приклад:
arr = np.array([1, 2, 3, 4, 5, 6]) reshaped_arr = np.reshape(arr, (2, -1)) print(reshaped_arr)
У цьому прикладі ми використовуємо негативне значення другої компоненти кортежу, що передається в функцію reshape(). Це означає, що ми хочемо отримати новий масив з формою (2, -1), де -1 буде обчислено автоматично на основі решти форми та кількості елементів. В результаті вийде новий масив reshaped_arr з формою (2, 3) та елементами [[1, 2, 3], [4, 5, 6]]. Також варто зазначити, що функція reshape() повертає уявлення вихідного масиву з новою формою. Це означає, що зміни в новому масиві також позначаться на вихідному масиві. Якщо потрібно створити копію вихідного масиву з новою формою, ви можете використовувати метод copy(). Приклад:
arr = np.array([1, 2, 3, 4, 5, 6]) reshaped_arr = arr.reshape((2, 3)).copy() print(reshaped_arr)
У цьому прикладі ми використовуємо метод reshape() для створення нового масиву з формою (2, 3) та елементами [[1, 2, 3], [4, 5, 6]]. Потім ми використовуємо метод copy(), щоб створити окрему копію цього нового масиву. Тепер зміни в reshaped_arr не впливатимуть на вихідний масив arr. Сподіваюся, що цей матеріал допоміг вам зрозуміти, як працює функція reshape() у бібліотеці NumPy. Ця функція є потужним інструментом зміни форми масивів і може бути корисною в багатьох завданнях програмування та аналізу даних.
Як використовувати функції shape та reshape у NumPy: у чому різниця? 🔄
Різниця між shape та reshape у бібліотеці NumPy Функції shape та reshape у бібліотеці NumPy використовуються для зміни форми масиву. Метод shape використовується для набуття форми (розмірів) масиву. Він повертає кортеж, що містить розміри кожного виміру.
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape) # (2, 3)
Метод reshape дозволяє змінити форму масиву без зміни даних. Він повертає новий масив із зазначеною формою.
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) reshaped_arr = arr.reshape((2, 3)) print(reshaped_arr) """ [[1 2 3] [ 4 5 6]] """
Таким чином, shape повертає поточну форму масиву, а reshape створює новий масив із новою вказаною формою.
Детальна відповідь
Shape та Reshape у NumPy: у чому різниця?
У NumPy, дві функції, які можуть викликати плутанину і сплутати програмістів-початківців, це shape і reshape. Вони обидва використовуються для зміни розмірів масивів NumPy, але мають деякі ключові відмінності. Давайте розберемося в цих функціях і дізнаємось, як вони працюють.
Функція Shape
Функція shape – це атрибут, який повертає форму (розмірність) масиву. Вона повертає кортеж цілих чисел, що становлять розміри кожного виміру масиву. Наприклад, якщо у нас є масив arr :
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape)
Функція Reshape
Функція reshape використовується зміни форми масиву без зміни його даних. Вона повертає новий масив із зміненою формою. Це може бути корисним при роботі з даними, коли ми хочемо змінити форму масиву, щоб він краще відповідав нашим потребам. Давайте подивимося на приклад використання функції reshape:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) print("Початковий масив:") print(arr) reshaped_arr = arr.reshape(2, 3) print("Змінений масив:") print(reshaped_arr)
Вихідний масив: [1 2 3 4 5 6] Змінений масив: [[1 2 3] [4 5 6]]
Як бачите, функція reshape змінила форму масиву з одновимірного масиву [1, 2, 3, 4, 5, 6] на двовимірний масив [[1, 2, 3], [4, 5, 6]].
Відмінності між Shape та Reshape
- shape – це атрибут, який повертає поточну форму масиву, але не змінює його. Він корисний, коли вам просто потрібно взнати розміри масиву.
- reshape - це функція, що створює новий масив із новою формою без зміни вихідного масиву.
Також варто зазначити, що при використанні reshape ми повинні обов'язково вказати нову форму масиву, яку хочемо отримати, і переконатися, що це можливо. Наприклад, спроба змінити форму масиву з 6 елементами на форму (3, 3) у разі викликає помилку.
Є деякі моменти, які варто враховувати під час використання функцій shape і reshape:
- Функція shape повертає кортеж розмірів масиву, тому ви можете отримати інформацію про розмір кожного виміру окремо.
- Функція reshape вимагає, щоб нова форма масиву містила таку кількість елементів, як і вихідний масив. В іншому випадку буде згенеровано помилку.
- Функція reshape завжди повертає новий масив, навіть якщо форма не змінилася.
Висновок
У цій статті ми розглянули різницю між функціями shape і reshape у бібліотеці NumPy. Функція shape повертає форму масиву, тоді як функція reshape створює новий масив із зміненою формою. Вони обидва можуть бути корисні під час роботи з даними, залежно від ваших потреб.
Будьте обережні під час використання функції reshape та переконайтеся, що нова форма масиву правильно відповідає вашим вимогам. Це допоможе уникнути помилок та несподіваної поведінки.