[Python] subclassare ndarray

Margherita Di Leo diregola a gmail.com
Mer 6 Maggio 2015 12:09:16 CEST


Ciao,

per un programma che sto scrivendo vorrei creare un oggetto array di numpy
con un numero di colonne preassegnato, per avere la comodita` di chiamare
le varie colonne con array.nome invece di usare indici anonimi.
Tra l'altro, questo array sara` poi incorporato in un oggetto "punto".
Per il momento, l'oggetto punto gia funziona se gli passo un array normale,
quindi ora voglio procedere a passargli questo array speciale.
Pero` sto trovando qualche difficolta` a capire come particolarizzare
questa classe, mi dareste una mano per favore?
Ecco il mio tentatvo:

...
# questa e` la classe del punto, che funziona per il momento
class Point(object):
    '''The point has a cat, a ord identifier and coordinates x, y'''
    def __init__(self, cat, ordn, x, y, **kwargs):
        '''id is cat, ord is NUMERO_ORD'''
        self.cat = cat
        self.ordn = ordn
        self.X = x
        self.Y = y
        #self.TS = np.asarray(self)
        self.TS = np.asarray(TimeSeries)

# questa e` la classe che voglio creare
class TimeSeries(ndarray):
    '''This object registers for each point the following characteristics
    over time:
    * Column 0 : NIR
    * Column 1 : RED
    * Column 2 : GREEN
    * Column 3 : NDVI
    * Column 4 : SAVI '''
    def __init__(self, nir, red, green, ndvi, savi):
        self.NIR = nir
        self.RED = red
        self.GREEN = green
        self.NDVI = ndvi
        self.SAVI = savi
...

domanda: come faccio a dirgli che:

1) L'array deve avere 5 colonne e un numero indefinito di righe
2) La colonna 0 si chiama NIR, la 1 si chiama RED.. e cosi` via ?

Spero di essere stata abbastanza chiara. Ho cercato informazioni in rete,
ho trovato risposte anche abbastanza complicate ma nulla che somigliasse al
mio esempio.
Grazie in anticipo

Ciao,
Margherita

-- 
Best regards,

Dr. Margherita DI LEO
Scientific / technical project officer

European Commission - DG JRC
Institute for Environment and Sustainability (IES)
Via Fermi, 2749
I-21027 Ispra (VA) - Italy - TP 261

Tel. +39 0332 78 3600
margherita.di-leo a jrc.ec.europa.eu

Disclaimer: The views expressed are purely those of the writer and may not
in any circumstance be regarded as stating an official position of the
European Commission.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150506/3a5a268f/attachment.html>


Maggiori informazioni sulla lista Python