Как разделить массив на равные части Python
Как разделить массив на равные части Python. Иногда возникает ситуация в которой массив слишком большой и с ним неудобно работать. Когда вы вызываете функцию, то передавать ей большой массив длинной в несколько тысяч элементов опасно. Нет гарантии в том, что такая функция успешно отработает. Поэтому массив для входного параметра лучше разделить на небольшие части
В первом примере я использую генератор yield. Он позволяет работать с большим массивом не загружая весь массив в память. Чтение массива и его загрузка происходит частями.
def split_list(lst, chunk_size):
for i in range(0, len(lst), chunk_size):
yield lst[i : i + chunk_size]
data = list(range(1000))
chunk_size = 100
for chunk in split_list(data, chunk_size):
print(chunk)
Тут применяется простой цикл for. Этот пример хорош для небольших массивов.
data = list(range(1000))
chunk_size = 100
for i in range(0, len(data), chunk_size):
chunk = data[i:i + chunk_size] # Получаем срез массива
print(chunk)
Тут я использую библиотеку polars. Читайте подробнее на странице библиотека Polars для аналитики данных Python.Она хороша тем что позволяет работать с большими объёмами данных. Она шустрее numpy.
import polars as pl
data = list(range(1000))
chunk_size = 100
# Преобразуем список в DataFrame
df = pl.DataFrame(data)
# Разбиваем DataFrame на части
for i in range(0, df.height, chunk_size):
chunk = df[i:i + chunk_size] # Получаем срез DataFrame
print(chunk)