gpt4 book ai didi

python - 对 numpy 数组中的对象应用方法并进行向量化会导致空数组

转载 作者:行者123 更新时间:2023-11-30 23:29:42 25 4
gpt4 key购买 nike

我想对 numpy 数组中的每个对象应用一个方法。我想过使用 numpy.vectorize 来加快速度,但我得到一个空数组。我不明白我做错了什么。请帮忙!

代码如下:

import numpy

class Foo(object):
def __init__(self):
self.x = None
def SetX(self, x):
self.x = x
# Initialize and array of Foo objects
y = numpy.empty( 3, dtype=object )
vFoo = numpy.vectorize(lambda x: Foo() )
yfoo = vFoo(y)
# Apply method SetX to each object
xsetter = numpy.vectorize( lambda foo: foo.SetX(3.45) )
print xsetter(yfoo) #[None None None]

提前致谢!

最佳答案

问题在于 lambda 函数返回值为 None(Foo.SetX 的结果),您可以这样做:

def f(foo):
foo.SetX(3.45)
return foo
xsetter = numpy.vectorize( f )

关于python - 对 numpy 数组中的对象应用方法并进行向量化会导致空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006190/

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