Ответ 1
np.array(test) # 1.19s
np.fromiter(test, dtype=np.int) # 1.08s
np.frombuffer(test) # 459ns !!!
Я получаю большой массив (изображение с 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.
Есть ли более эффективный способ сделать это преобразование?
np.array(test) # 1.19s
np.fromiter(test, dtype=np.int) # 1.08s
np.frombuffer(test) # 459ns !!!