[Numpy-discussion] object dtype questions

Ernest Adrogué eadrogue at gmx.net
Sun Sep 6 07:32:52 EDT 2009


 5/09/09 @ 11:22 (-0600), thus spake Mark Wendell:
> For example:
> 
> Say that C is a simple python class with a couple attributes and methods.
> 
> a = np.empty( (5,5), dtype=object)
> for i in range(5):
>      for j in range(5):
>           a[i,j] = C(var1,var2)
> 
> First question: is there a quicker way than above to create unique
> instances of C for each element of a?

You achieve the same with
a=np.array([C(var1, var2) for i in range(25)], dtype=object).reshape((5,5))
but it takes about the same time in my computer.

> for i in range(5):
>      for j in range(5):
>           a[i,j].myMethod(var3,var4)
>           print a[i,j].attribute1
> 
> Again, is there a quicker way than above to call myMethod or access attribute1?

I think you can use a ufunc:

def foo(x):
    x.myMethod(var3,var4)
	print x.attribute1

ufoo = np.frompyfunc(foo, 1, 0)
ufoo(a)

Don't know if it is any faster though.

-- 
Ernest



More information about the NumPy-Discussion mailing list