numpy.split()
Функция np.split разбивает массив на несколько подмассивов вдоль указанной оси. Если разбить на равные части невозможно — выбрасывает ошибку (для произвольных размеров используйте np.array_split).
Сигнатура
numpy.split(ary, indices_or_sections, axis=0)
Параметры
ary— массив для разбиения.indices_or_sections— целое число (количество равных частей) или 1D-массив индексов, по которым делить.axis— ось разбиения, по умолчанию0.
Возвращаемое значение
Список подмассивов (list of ndarray).
Примеры
Пример 1. Разбить на 3 равные части.
import numpy as np
a = np.arange(9)
parts = np.split(a, 3)
for p in parts:
print(p)
[0 1 2]
[3 4 5]
[6 7 8]
Пример 2. Разбить по индексам.
a = np.arange(10)
parts = np.split(a, [2, 5, 8])
for p in parts:
print(p)
[0 1]
[2 3 4]
[5 6 7]
[8 9]
Пример 3. Разбить пакет данных от 3 датчиков.
packet = np.array([512, 480, 600, 510, 482, 605, 508, 478, 610])
s1, s2, s3 = np.split(packet, 3)
print("Датчик 1:", s1)
print("Датчик 2:", s2)
print("Датчик 3:", s3)
Датчик 1: [512 480 600]
Датчик 2: [510 482 605]
Датчик 3: [508 478 610]
Пример 4. Разбить 2D массив по столбцам.
m = np.arange(12).reshape(3, 4)
left, right = np.split(m, 2, axis=1)
print(left)
print(right)
[[0 1]
[4 5]
[8 9]]
[[ 2 3]
[ 6 7]
[10 11]]
Пример 5. Разделение train/test 80/20.
data = np.arange(10)
train, test = np.split(data, [8])
print("train:", train)
print("test:", test)
train: [0 1 2 3 4 5 6 7]
test: [8 9]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.