NumPy — популярная библиотека для числовых вычислений на Python. Давайте рассмотрим два распространенных метода массива, используемых в NumPy, и простые примеры, чтобы продемонстрировать их использование.
array.shape: возвращает форму массива в виде кортежа.
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) print(a.shape) # Output: (2, 3)
Здесь форма выражается количеством строк и количеством столбцов (в двух измерениях).
array.reshape: возвращает массив с новой формой без изменения исходного массива.
import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) b = a.reshape((2, 3)) print(b) # Output: # [[1 2 3] # [4 5 6]]
array.reshape — это метод, который используется для изменения формы массива NumPy. Он принимает в качестве аргумента желаемую форму нового массива и возвращает новый массив с указанной формой. Размер нового массива должен соответствовать размеру исходного массива.
Если размеры исходного массива и новой формы несовместимы напрямую, NumPy выдает ошибку ValueError. Например, рассмотрим следующий код:
import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) b = a.reshape(2, 3) print(b) # Output: # [[1 2 3] # [4 5 6]]
В этом примере исходный массив имеет размер 6, а новая форма — (2, 3). Размер нового массива равен 2 * 3 = 6, что равно размеру исходного массива, поэтому операция изменения формы выполнена успешно.
array.reshape работает и для двумерных массивов. Фактически, его можно использовать для изменения формы массивов любого количества измерений. Важно помнить, что размер нового массива должен соответствовать размеру исходного массива.
Вот пример использования array.reshape с двумерным массивом:
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) b = a.reshape(3, 2) print(b) # Output: # [[1 2] # [3 4] # [5 6]]
В этом примере исходный массив a имеет форму (2, 3), и мы преобразуем его в форму (3, 2). Размер нового массива b равен 3 * 2 = 6, что равно размеру исходного массива a, поэтому операция изменения формы выполнена успешно.
Однако если мы попытаемся преобразовать исходный массив в форму другого размера, возникнет ошибка ValueError.
import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) try: b = a.reshape(3, 3) except ValueError as e: print("Caught ValueError:", e) # Output: Caught ValueError: cannot reshape array of size 6 into shape (3,3)
В этом примере исходный массив имеет размер 6, и мы пытаемся преобразовать его в форму (3, 3), которая имеет размер 3 * 3 = 9, что не равно размеру массива. исходный массив. В результате возникает ошибка ValueError.
Мы увидим больше этих нюансов в нашем следующем посте…