1
我想將方法應用於numpy數組中的每個對象。我想用numpy.vectorize來加速,但我得到一個空數組。我無法弄清楚我做錯了什麼。請幫忙!將方法應用於具有向量化的numpy數組中的對象會產生空數組
下面的代碼:
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]
提前感謝!
一般來說,你不需要爲自定義類定義'set'(或'get')函數:只需使用'Foo_inst.x = y'來設置,其中'Foo_inst'是您的類對象,'x'是所需的屬性,'' y'是它的理想值。即使屬性「x」之前沒有明確定義,也是如此。同樣,只需使用'Foo_inst.x'來獲得它的值。 –
是的,你說得對。這只是我喜歡保留隱私的類別屬性:) – jmborr