Метод resize
Метод resize изменяет размеры массива непосредственно в памяти, изменяя сам исходный массив. В отличие от функции np.resize, которая возвращает новый массив, этот метод работает с текущим объектом массива. Если новый размер превышает исходный, метод дополняет массив повторяющимися элементами из исходного массива. Если новый размер меньше, массив обрезается до указанной длины.
Метод принимает новый размер в виде кортежа или списка целых чисел и возвращает None, так как изменение происходит на месте.
Синтаксис
arr.resize(new_shape)
Пример изменения одномерного массива
Давайте создадим одномерный массив из пяти элементов и изменим его размер до трёх элементов:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
arr.resize((3,))
print(arr)
Результат выполнения кода:
[1 2 3]
Пример увеличения размера массива
Увеличим массив до семи элементов, используя повторение данных:
import numpy as np
arr = np.array([1, 2, 3])
arr.resize((7,))
print(arr)
Результат выполнения кода:
[1 2 3 1 2 3 1]
Пример изменения формы двумерного массива
Изменим двумерный массив формы (2, 3) на форму (3, 2):
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.resize((3, 2))
print(arr)
Результат выполнения кода:
[[1 2]
[3 4]
[5 6]]
Пример изменения размера до большего двумерного массива
Увеличим двумерный массив до формы (2, 6) с повторением данных:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.resize((2, 6))
print(arr)
Результат выполнения кода:
[[1 2 3 4 5 6]
[1 2 3 4 5 6]]
Пример изменения размера с изменением общего количества элементов
Изменим форму массива, изменив общее количество элементов с 6 до 12:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.resize((4, 3))
print(arr)
Результат выполнения кода:
[[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]]