gpt4 book ai didi

python - 从列表理解和一般情况下有效地创建 numpy 数组

转载 作者:IT老高 更新时间:2023-10-28 21:49:44 27 4
gpt4 key购买 nike

在我目前的工作中,我经常使用 Numpy 和列表​​推导式,为了获得最佳性能,我有以下问题:

如果我按如下方式创建 Numpy 数组,幕后实际会发生什么?

a = numpy.array( [1,2,3,4] )

我的猜测是python首先创建一个包含值的普通列表,然后使用列表大小分配一个numpy数组,然后将值复制到这个新数组中。这是正确的,还是解释器足够聪明地意识到列表只是中间值,而是直接复制值?

同样,如果我希望使用 numpy.fromiter() 从列表理解创建一个 numpy 数组:

a = numpy.fromiter( [ x for x in xrange(0,4) ], int )

这会导致在输入 fromiter() 之前创建一个中间值列表吗?

最佳答案

我相信您正在寻找的答案是使用 generator expressionsnumpy.fromiter .

numpy.fromiter((<some_func>(x) for x in <something>),<dtype>,<size of something>)

生成器表达式是惰性的 - 当您遍历它们时,它们会计算表达式。

使用列表推导生成列表,然后将其输入 numpy,而生成器表达式将一次生成一个。

Python 像大多数语言(如果不是全部的话)一样,从内到外评估事物,所以使用 [<something> for <something_else> in <something_different>]将创建列表,然后对其进行迭代。

关于python - 从列表理解和一般情况下有效地创建 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com