Как повысить эффективность с помощью массивов 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) 

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

 
Interesting Posts for Van-Lav

Как навести указатель мыши на python Webdriver

Поиск расположения меток в индексе DataFrame

Как извлечь объект JSON, который был определен в блоке javascript HTML-страницы, используя Python?

Другой вариант для цветной полосы прокрутки в программе на основе tkinter?

Получение длины списка как значения в словаре в Python 2.7

Поиск файлов TXT в Python

Есть ли синтаксический анализатор eMail с открытым исходным кодом (заголовки, вложения и т. Д.)?

Как выполнять итерации по значениям, содержащим списки и удалять элементы?

Использование virtualenv с пробелами в пути

Нейронные сети: понимание библиотеки анано

Уровневая система основана на точках

Открывается критическое предупреждение при выполнении задания pandas с loc и iloc

Python: есть ли способ импортировать переменную с помощью timeit.timeit ()?

Вызов Python с Java (Tomcat6) в качестве подпроцесса

python json error: ValueError: Ожидающее значение: строка 1 столбец 1 (char 0)

Python - лучший язык программирования в мире.