Эффективный массив python для преобразования массива numpy

Я получаю большой массив (изображение с 12 Mpix) в формате массива из стандартной библиотеки python. Поскольку я хочу выполнять операции над этим массивом, я хочу преобразовать его в массив numpy. Я попробовал следующее:

import numpy
import array
from datetime import datetime
test = array.array('d', [0]*12000000)
t = datetime.now()
numpy.array(test)
print datetime.now() - t

Я получаю результат между одной или двумя секундами: эквивалент цикла в python.

Есть ли более эффективный способ сделать это преобразование?

Ответы

Ответ 1

np.array(test)                                       # 1.19s

np.fromiter(test, dtype=np.int)                      # 1.08s

np.frombuffer(test)                                  # 459ns !!!