Разделение массива NumPy
Разделение массивов NumPy
Разделение — это операция, обратная соединению.
Объединение объединяет несколько массивов в один, а разделение разбивает один массив на несколько.
Мы используем array_split()
для разделения массивов, мы передаем ему массив, который мы хотим разделить, и количество разделений.
Пример
Разделите массив на 3 части:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Примечание . Возвращаемое значение представляет собой массив, содержащий три массива.
Если в массиве меньше элементов, чем требуется, он будет соответствующим образом корректироваться с конца.
Пример
Разделите массив на 4 части:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Примечание. У нас также есть этот метод split()
, но он не будет корректировать элементы, когда элементов меньше в исходном массиве для разделения, как в примере выше, array_split()
работал правильно, но
split()
не работал.
Разделить на массивы
Возвращаемое значение array_split()
метода представляет собой массив, содержащий каждое разделение в виде массива.
Если вы разделите массив на 3 массива, вы можете получить к ним доступ из результата, как и к любому элементу массива:
Пример
Доступ к разделенным массивам:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
Разделение двумерных массивов
Используйте тот же синтаксис при разделении двумерных массивов.
Используйте array_split()
метод, передайте массив, который вы хотите разделить, и количество разделений, которые вы хотите сделать.
Пример
Разделите двумерный массив на три двумерных массива.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9,
10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
В приведенном выше примере возвращаются три двумерных массива.
Давайте посмотрим на другой пример, на этот раз каждый элемент в двумерных массивах содержит 3 элемента.
Пример
Разделите двумерный массив на три двумерных массива.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
В приведенном выше примере возвращаются три двумерных массива.
Кроме того, вы можете указать, вокруг какой оси вы хотите выполнить разделение.
В приведенном ниже примере также возвращаются три двумерных массива, но они разбиты по строке (ось = 1).
Пример
Разделите двумерный массив на три двумерных массива вдоль строк.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
Альтернативное решение использует hsplit()
напротив
hstack()
Пример
Используйте hsplit()
метод, чтобы разделить двумерный массив на три двумерных массива вдоль строк.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
Примечание. Аналогичные альтернативы vstack()
и
dstack()
доступны как
vsplit()
и
dsplit()
.