在我目前的工作中,我经常使用 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()
吗?