numpyfromiter在评估期间使用map时是否创建列表?

2024-06-24 12:17:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个例子中,我想知道numpy.fromiter是否在求值期间创建了一个列表。我想要的是“惰性”评估,使用iterable可以避免分配/取消分配列表。注意,示例函数是一个距离度量,输出是一个点和一组点之间的距离列表。这不是问题所在,只是一个例子。另外,我确实需要使用product,因为在实际情况中它将是itr.product(xyz, repeat=2),这是简化的

import numpy as np
import itertools as itr
xyz = np.array([[0,0,0], [75,75,25], [50,75,100], [0, 50, 0]], np.int)
wide = len(xyz)
p = np.array([[50, 50, 50]], np.int)
np.fromiter(map(lambda y:
                 np.sum(np.abs(p - y)), itr.product(xyz, repeat=1)),
             np.int, wide)

输出array([150, 75, 75, 100])


Tags: importnumpy距离列表asnpproductarray