Как повысить эффективность с помощью массивов numpy?

Я просто знаком с numpy, и меня впечатляют его претензии на C-подобную эффективность с доступом к памяти в ndarrays. Я хотел увидеть различия между ними и списками python для себя, поэтому я провел быстрый тест времени, выполнив несколько простых задач с 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?

Благодаря…

EDIT: Чтобы ответить на комментарий Уэйна … Я приурочил их как неоднократно, так и в разных порядках и получал одинаковые результаты каждый раз, поэтому я сомневаюсь, что это еще один процесс. я кладу

 start = time() 

в верхней части файла после импорта numpy, а затем у меня есть инструкции вроде

 print 'Time after traversal:\t',(time() - start) 

на протяжении.