在我目前的工作中,我使用Numpy和列表理解很多,为了最好的表现,我有以下问题:
如果我按如下方式创建Numpy数组,幕后实际发生了什么?:
a = numpy.array( [1,2,3,4] )
Run Code Online (Sandbox Code Playgroud)
我的猜测是python首先创建一个包含值的普通列表,然后使用列表大小来分配一个numpy数组,然后将值复制到这个新数组中.这是正确的,还是解释器聪明到足以意识到列表只是中介而是直接复制值?
同样,如果我希望使用numpy.fromiter()从列表理解中创建一个numpy数组:
a = numpy.fromiter( [ x for x in xrange(0,4) ], int )
Run Code Online (Sandbox Code Playgroud)
这会导致在被送入fromiter()之前创建的值的中间列表吗?
最好的问候尼尔斯