Эффективное создание массивов NumPy из понимания списка и в целом
В своей текущей работе я часто использую Numpy и составляю списки, и в интересах наилучшей производительности у меня есть следующие вопросы:
Что на самом деле происходит за кулисами, если я создаю массив Numpy следующим образом? :
a = numpy.array( [1,2,3,4] )
Я предполагаю, что python сначала создает обычный список, содержащий значения, а затем использует размер списка для выделения массива numpy и затем копирует значения в этот новый массив. Это правильно, или интерпретатор достаточно умен, чтобы понять, что список является только промежуточным, и вместо этого скопировать значения напрямую?
Точно так же, если я хочу создать массив numpy из списка, используя numpy.fromiter ():
a = numpy.fromiter( [ x for x in xrange(0,4) ], int )
приведет ли это к созданию промежуточного списка значений перед передачей в fromiter ()?
С наилучшими пожеланиями, Нильс