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.