Этот вопрос, это больше для обсуждения array
против list
в python, и если это стоит того, чтобы изменить кодовую базу с чисел list
на числа arrays
.
Это использует стандартные модули Python, а не numpy
.
Я смотрел на модуль array
из стандартной библиотеки Python, и он привлек мое внимание, что я вполне мог бы провести некоторый «простой» численный анализ и сжатие чисел, заменив мои списки чисел массивами парных чисел или плавает, (в зависимости от случая).
Кто-нибудь, кто имеет опыт работы с объектом array
в python, может поделиться сравнением или почему он решил их использовать? У меня все еще есть проблемы с этим решением.
Меня беспокоит то, могу ли я каким-либо образом использовать массивы массивов или список массивов, и если это повысит мою производительность, сейчас у меня есть списки списков чисел, и я пытаюсь использовать python без каких-либо зависимостей, поэтому не NumPy.
Если я исправлю внутренний объект python list
Это динамический массив, я не уверен в этом.
Я провел этот тест, используя size = sys.getsizeof
и array = array.array
, я знаю, что это может быть не очень хорошим сравнением, но все же это вызывает некоторые вопросы.
>>> for i in range(0, 100, 5):
... test = [1.0*j for j in range(i)]
... a = array('f', test)
... print(f"{i} | {size(a)} | {size(test)}")
len|array|list
---|-----|----
0 | 32 | 36
5 | 52 | 68
10 | 72 | 100
15 | 92 | 100
20 | 112 | 136
25 | 132 | 136
30 | 152 | 176
35 | 172 | 176
40 | 192 | 220
45 | 212 | 220
50 | 232 | 268
55 | 252 | 268
60 | 272 | 324
65 | 292 | 324
70 | 312 | 324
75 | 332 | 388
80 | 352 | 388
85 | 372 | 388
90 | 392 | 460
95 | 412 | 460