# Numeric array of objects

Discussion in 'Python' started by beliavsky@aol.com, Mar 3, 2004.

1. ### Guest

You create a 1-D Numeric array of n floats with

x = zeros(n,Float)

How do you create a Numeric array of n instances of class 'xy', where
for example xy is defined as follows:

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

I want the elements of the array to be initialized to the default
value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
of the book "Python in a Nutshell", but I still don't get it.

, Mar 3, 2004

2. ### Larry BatesGuest

What you want is n "instances" of the class xy.
Since __init__ method is called when an instance
is created, the instance.x and instance.y
attributes will be 0.0, 0.0 unless you set them
to something different (as arguments to the
instance creation).

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

n=10
x=[xy() for j in range(10)]

after that

x[0].x equals 0.0
x[0].y equals 0.0
..
..
..
x[9].x equals 0.0
x[9].y equals 0.0

I "think" this is what you want, but I'm not certain.

-Larry

<> wrote in message
news:...
> You create a 1-D Numeric array of n floats with
>
> x = zeros(n,Float)
>
> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:
>
> class xy:
> def __init__(self,x=0.0,y=0.0):
> self.x = x
> self.y = y
>
> I want the elements of the array to be initialized to the default
> value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
> of the book "Python in a Nutshell", but I still don't get it.

Larry Bates, Mar 3, 2004

3. ### Josiah CarlsonGuest

> You create a 1-D Numeric array of n floats with
>
> x = zeros(n,Float)
>
> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:
>
> class xy:
> def __init__(self,x=0.0,y=0.0):
> self.x = x
> self.y = y
>
> I want the elements of the array to be initialized to the default
> value of xy, (0.0,0.0). I have read the Martelli's explanation on p309
> of the book "Python in a Nutshell", but I still don't get it.

Numeric.array([xy() for i in xrange(n)], Numeric.PyObject)

- Josiah

Josiah Carlson, Mar 4, 2004
4. ### John HunterGuest

> How do you create a Numeric array of n instances of class 'xy', where
> for example xy is defined as follows:

from Numeric import PyObject, array

class xy:
def __init__(self,x=0.0,y=0.0):
self.x = x
self.y = y

a = array([xy() for i in range(10)], typecode=PyObject)

JDH

John Hunter, Mar 4, 2004