Разделение массивов в Python: функция NumPy split()
Функция NumPy split() разделяет массив на несколько подмассивов.
- Знакомство с функцией NumPy split()
- Примеры функции NumPy split()
- 1) Использование numpy.split() для разделения одномерного массива
- 2) Разделение двумерного массива с помощью функции split()
- 3) Использование индексов
Знакомство с функцией NumPy split()
Синтаксис функции numpy.split() следующий:
numpy.split(ary, indices_or_sections, axis=0)
В этом синтаксисе:
- ary — массив, который необходимо разбить на подмассивы.
- indices_or_sections может быть целым числом или одномерным массивом отсортированных целых чисел.
Если это целое число, функция разбивает входной массив на N равных массивов вдоль оси. Если разбиение невозможно, функция выдаст ошибку.
Если indices_or_sections — это одномерный массив отсортированных целых чисел, индексы указывают, где вдоль оси функция разбивает массив.
Когда индекс превышает размерность массива по оси, функция возвращает пустой подмассив.
На следующем рисунке показано, как функция split() разбивает массив с индексами 2, 3 и 4. В результате получается 4 массива.
Примеры функции NumPy split()
Давайте рассмотрим несколько примеров использования функции split().
1) Использование numpy.split() для разделения одномерного массива
В следующем примере функция split() используется для разделения одномерного массива из семи элементов на три подмассива:
import numpy as np a = np.arange(1,7) results = np.split(a,3) print(a) print(results)
Выход:
[1 2 3 4 5 6] [array([1, 2]), array([3, 4]), array([5, 6])]
В следующем примере возникает ошибка, поскольку разделение невозможно:
import numpy as np a = np.arange(1,7) results = np.split(a,4)
Выход:
ValueError: array split does not result in an equal division
В этом примере массив имеет 6 элементов, поэтому его нельзя разделить на 4 массива одинакового размера. Если вы хотите иметь более гибкое разделение, вы можете использовать функцию array_split().
2) Разделение двумерного массива с помощью функции split()
В следующем примере функция split() используется для разделения двумерного массива на два подмассива:
import numpy as np a = np.array([[1,2],[3,4],[5,6],[7,8]]) results = np.split(a,2) print(a) print(results)
Выход:
[[1 2] [3 4] [5 6] [7 8]] [array([[1, 2], [3, 4]]), array([[5, 6], [7, 8]])]
3) Использование индексов
В следующем примере функция split() применяется для разделения одномерного массива с использованием массива индексов:
import numpy as np a = np.arange(10,70,10) results = np.split(a, [2, 3, 4]) print(a) print(results)
Выход:
[1 2 3 4 5 6] [array([1, 2]), array([3]), array([4, 5, 6])]