Разделение массивов NumPy
- Предыдущая страница Соединение массивов NumPy
- Следующая страница Поиск массивов 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()
Альтернативные методы.
- Предыдущая страница Соединение массивов NumPy
- Следующая страница Поиск массивов NumPy