Разделение массивов NumPy

Разрезание NumPy массивов

Разрезание - это обратная операция к соединению.

Соединение (Joining) - это объединение нескольких массивов в один, а разрезание (Spliting) - это разрезание одного массива на несколько.

Мы используем 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() Метод, передающий массив для разрезания и количество разрезов.

Пример

Разделите этот 2-D массив на три 2-D массива.

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)

Запустить пример

В предыдущем примере возвращаются три 2-D массива.

Давайте посмотрим на другой пример, где каждый элемент 2-D массива содержит 3 элемента.

Пример

Разделите этот 2-D массив на три 2-D массива.

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)

Запустить пример

В предыдущем примере возвращаются три 2-D массива.

Кроме того, вы можете指定 ось для разделения.

Ниже приведен пример, который также возвращает три 2-D массива, но они разделены по строкам (axis=1).

Пример

Разделите этот 2-D массив на три 2-D массива по строкам.

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)

Запустить пример

Другое решение - использовать с hstack() направленного hsplit().

Пример

Используйте метод hsplit() для разделения 2-D массива на три 2-D массива по строкам.

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)

Запустить пример

Совет:vsplit() и dsplit() Можно использовать с vstack() и dstack() Альтернативные методы.