Функция split
Функция split разделяет массив NumPy на несколько подмассивов
вдоль заданной оси. Первым параметром функция принимает исходный массив,
вторым - количество частей или индексы, по которым нужно разделить.
Третьим параметром можно указать ось для разделения.
Синтаксис
np.split(arr, indices_or_sections, [axis])
Пример
Давайте разделим одномерный массив из шести элементов на три равные части:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = np.split(arr, 3)
for part in res:
print(part)
Результат выполнения кода:
[1 2]
[3 4]
[5 6]
Пример
Разделим массив на части с помощью списка индексов. Индексы указывают позиции, после которых происходит разделение:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
res = np.split(arr, [2, 5, 7])
for part in res:
print(part)
Результат выполнения кода:
[1 2]
[3 4 5]
[6 7]
[8 9]
Пример
Разделим двумерный массив по строкам (ось 0). В результате получим три подмассива, каждый из которых содержит одну строку исходного массива:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = np.split(arr, 3, axis=0)
for part in res:
print(part)
print('---')
Результат выполнения кода:
[[1 2 3]]
---
[[4 5 6]]
---
[[7 8 9]]
---
Пример
Разделим двумерный массив по столбцам (ось 1) с помощью списка индексов. Каждая часть будет содержать указанное количество столбцов:
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
res = np.split(arr, [1, 3], axis=1)
for part in res:
print(part)
print('---')
Результат выполнения кода:
[[1]
[5]
[9]]
---
[[2 3]
[6 7]
[10 11]]
---
[[4]
[8]
[12]]
---
Пример
Если массив невозможно разделить на равные части, функция split вызовет ошибку. Для такого случая используйте функцию array_split, которая позволяет неравномерное разделение:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.array_split(arr, 3)
for part in res:
print(part)
Результат выполнения кода:
[1 2]
[3 4]
[5]
Смотрите также
-
функцию
array_split,
которая разделяет массив на части с возможностью неравномерного деления -
функцию
hsplit,
которая разделяет массив по горизонтали (по столбцам) -
функцию
vsplit,
которая разделяет массив по вертикали (по строкам) -
функцию
dsplit,
которая разделяет массив по третьей оси (по глубине)