Я просто знаком с numpy, и я впечатлен его претензиями на C-подобную эффективность с доступом к памяти в своих ndarrays. Я хотел увидеть различия между ними и списками python для себя, поэтому я провел быстрый тест времени, выполнив несколько простых задач с numpy без него. Как и ожидалось, на порядок величины распределяются и распределяются регулярные списки по распределению и арифметическим операциям на массивах. Но этот сегмент кода, идентичны в обоих тестах, занимает около 1/8 секунды с обычным списком, и чуть более 2,5 секунды с NumPy:Как повысить эффективность с помощью массивов numpy?
file = open('timing.log','w')
for num in a2:
if num % 1000 == 0:
file.write("Multiple of 1000!\r\n")
file.close()
Кто-нибудь знает, почему это может быть, и если какой-то другой синтаксис, который я должен использовать для таких операций, чтобы лучше использовать то, что может сделать ndarray?
Спасибо ...
EDIT: Для того, чтобы ответить на комментарий Уэйн ... Я приуроченные их как раз и в разных порядках и получила довольно много Идентичные результаты каждый раз, так что я сомневаюсь, что это другой процесс. Я положил
start = time()
в начало файла после импорта numpy, а затем у меня есть инструкции, такие как
print 'Time after traversal:\t',(time() - start)
.
Можете ли вы показать, как вы измерили время? Вы пытались поменять порядок, который вы взяли? Тот факт, что вы пишете на диск, усложняет вопрос о времени (что, если '[insert-process-here]' писал на диск с более высоким приоритетом во время теста numpys?) –
Спасибо за все ответы! Все были информативными. Извините, у меня недостаточно репутации, чтобы проголосовать за них! – pr0crastin8r