Когда вы работаете с массивами данных в NumPy, иногда возникает необходимость разделить массив на несколько меньших массивов. Функция np.split()
позволяет выполнить это действие с большой гибкостью.
numpy.split(ary, indices_or_sections, axis=0)
ary
: Массив, который вы хотите разделить.indices_or_sections
: Целое число или одномерный массив целых чисел. Если указано целое число, массив будет разделен на это количество частей. Если указан массив целых чисел, они представляют собой индексы, по которым осуществляется разделение.axis
: Ось, по которой осуществляется разделение. По умолчанию равна 0.import numpy as np
# Создание массива
arr = np.array([1, 2, 3, 4, 5, 6])
# Разделение массива на 3 части
splitted_arrays = np.split(arr, 3)
print(splitted_arrays) # [array([1, 2]), array([3, 4]), array([5, 6])]
# Создание массива
arr = np.array([1, 2, 3, 4, 5, 6])
# Разделение массива на индексах 2 и 4
splitted_arrays = np.split(arr, [2, 4])
print(splitted_arrays) # [array([1, 2]), array([3, 4]), array([5, 6])]
# Создание 2D массива
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
# Разделение по горизонтали (по строкам)
horizontal_split = np.split(matrix, 2)
print(horizontal_split)
# [array([[1, 2, 3], [4, 5, 6]]), array([[ 7, 8, 9], [10, 11, 12]])]
# Разделение по вертикали (по столбцам), указывая ось
vertical_split = np.split(matrix, 3, axis=1)
print(vertical_split)
# [array([[ 1], [ 4], [ 7], [10]]), array([[ 2], [ 5], [ 8], [11]]), array([[ 3], [ 6], [ 9], [12]])]
Если вы попытаетесь разделить массив на такое количество частей, которое не позволяет провести равномерное разделение, NumPy выдаст ошибку:
# Например, попытка разделить массив из 7 элементов на 3 части вызовет ошибку:
arr = np.array([1, 2, 3, 4, 5, 6, 7])
splitted_arrays = np.split(arr, 3) # ValueError
Чтобы избежать такой ошибки, всегда убеждайтесь, что размер вашего массива позволяет провести требуемое разделение.
Если вам нужно провести разделение только по горизонтали или вертикали, вы можете использовать np.hsplit()
или np.vsplit()
соответственно. Они предоставляют более удобный и интуитивный способ разделения для этих конкретных случаев.
Функция np.split()
предоставляет мощный и гибкий способ разделения массивов в NumPy. Будьте внимательны к размеру массива и количеству разделений, чтобы избежать ошибок. Всегда помните о существовании альтернативных функций, которые могут быть более подходящими для вашей конкретной задачи.
Содержание: