私の現在の仕事では、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()
ますか?