5 способов разделить числа на равные части с помощью NumPy

В этой статье мы рассмотрим различные методы разделения чисел на равные части с использованием мощной библиотеки NumPy на Python. Независимо от того, работаете ли вы с массивами или хотите разделить число на определенные интервалы, мы вам поможем. Давайте погрузимся и изучим несколько интересных техник!

Метод 1: np.array_split()
Функция np.array_split()позволяет нам разбить массив на несколько подмассивов одинакового или почти равного размера. Вот пример:

import numpy as np
numbers = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
split_array = np.array_split(numbers, 3)
print(split_array)

Выход:

[array([1, 2, 3, 4]), array([5, 6, 7]), array([8, 9, 10])]

Метод 2: np.linspace()
Функция np.linspace()делит заданный диапазон на указанное количество равноотстоящих друг от друга интервалов. Вот пример:

import numpy as np
start = 0
end = 10
num_parts = 5
split_array = np.linspace(start, end, num_parts + 1)
print(split_array)

Выход:

[ 0.  2.  4.  6.  8. 10.]

Метод 3: np.array_split() с остатком
Если вы хотите разделить массив на равные части, но длина массива не делится на желаемое количество частей, np.array_split()тоже справлюсь. Последний подмассив будет содержать оставшиеся элементы. Вот пример:

import numpy as np
numbers = np.array([1, 2, 3, 4, 5, 6, 7])
split_array = np.array_split(numbers, 3)
print(split_array)

Выход:

[array([1, 2, 3]), array([4, 5]), array([6, 7])]

Метод 4: np.split()
Функция np.split()разбивает массив на несколько подмассивов по указанным индексам. Мы можем рассчитать индексы исходя из желаемого количества деталей. Вот пример:

import numpy as np
numbers = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
num_parts = 4
indices = np.arange(0, len(numbers), len(numbers) / num_parts).astype(int)
split_array = np.split(numbers, indices[1:])
print(split_array)

Выход:

[array([1, 2, 3]), array([4, 5, 6]), array([7, 8]), array([ 9, 10])]

Метод 5: np.hsplit() для 2D-массивов
Если вы работаете с 2D-массивами, вы можете использовать np.hsplit(), чтобы разделить их по горизонтали на равные части. Вот пример:

import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
split_array = np.hsplit(matrix, 3)
print(split_array)

Выход:

[array([[ 1],
       [ 4],
       [ 7],
       [10]]),
 array([[ 2],
       [ 5],
       [ 8],
       [11]]),
 array([[ 3],
       [ 6],
       [ 9],
       [12]])]

В этой статье мы рассмотрели пять различных методов разделения чисел на равные части с помощью NumPy. Мы рассмотрели такие функции, как np.array_split(), np.linspace(), np.split()и np.hsplit(), которые могут обрабатывать как одномерные, так и двумерные массивы. Используя эти методы, вы можете эффективно делить числа на равные интервалы для нужд обработки данных.