Эффективное создание массивов 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 ()?

С наилучшими пожеланиями, Нильс

Ответы на вопрос(2)

Ваш ответ на вопрос