Самый экономичный способ хранения большого количества больших целых чисел.Python

Программы на Python
Anonymous
Самый экономичный способ хранения большого количества больших целых чисел.

Сообщение Anonymous »

У меня есть большое количество очень больших целых чисел (обычно больше, чем unsigned long long), например
976790216313803691633662
213166167
12361374472474414331778521
74143614714316467475274141141343747437542416477224365045416
...
46247285274316436417475827426432634528582016257012061846140147206
7287516801860168175715895175371357381735188912758511

который я хотел бы сохранить в файле. Какой способ их хранения наиболее экономичен? Я пробовал несколько методов, включая преобразование в байты и сохранение в файле h5, сохранение как .npz с использованием numpy, но наибольшее сжатие я получаю, сохраняя их в виде обычного текста и затем создайте файл .tar.gz.
Есть ли лучший способ (т. е. который обеспечит лучшее сжатие)? В файле может быть от 10^4 до 10^12 строк.
Изменить:
Вы можете создать минимальный воспроизводимый пример, запустив следующее в Python (именно так список номеров получается в первую очередь):
import numpy as np
def generate_int(n):
return int(str(np.random.randint(1, 10)) + ''.join([str(np.random.randint(0, 10)) for _ in range(n-1)]))
output = [generate_int(np.random.randint(4, 1001)) for _ in range(1000000)]


Подробнее здесь: https://stackoverflow.com/questions/786 ... e-integers

Вернуться в «Python»