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