|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2011
Messaggi: 17
|
[Python] Somma elementi di una colonna in file .fits
Salve a tutti.
Sto scrivendo un codice python che mi permetta di cercare una periodicita' nei dati di un file. Per far questo avevo intenzione di sommare i primi 50 dati presenti nella prima colonna della tabella e vedere se la somma e' uguale, entro un certo errore, alla somma dei 50 dati che si trovano dopo un certo lasso di tempo (periodo). Il problema che trovo ora e' che non so come sommare solo i primi 50 dati. Per lavorare con i file .fits c'e' bisogno di PyFits: Codice:
...
import pyfits
...
data=pyfits.open('any.lc.fits')
time = data[1].field(0)
rate = data[1].field(1)
Pensavo di sommare i primi 50 conteggi con qualcosa del genere: Codice:
count1 = [ sum(x) for x in data[1].field(1) ] Non sono molto pratico di python, dunque qualsiasi aiuto e' benvenuto. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Dovresti iterare le 50 righe, quindi, verrebbe fuori qualcosa del genere:
Codice:
Somma = sum(data[i].field(1) for i in xrange(1, 51))
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jan 2011
Messaggi: 17
|
Grazie mille per la risposta!
Ho scelto di riscrivere il rate come: Codice:
rate = data[1].data.field('WEIGHTED_COUNTS')[:,0]
Se seguo l'esempio da te riportato: Codice:
Somma = sum(rate for i in xrange(1, 51)) print Somma Codice:
[ 937700 908600 904850 ..., 1061950 1134800 1115700] Ok, posso ottenere il valore che voglio prendendo Somma[1], ma non capisco il principio percui ottengo un altro array anziche' una singola somma. La somma non dovrebbe fermarsi ai primi 50 elementi e stop? Ultima modifica di SoONicK : 14-02-2013 alle 15:13. Motivo: EDIT: leggera modifica |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Francamente non capisco. L'oggetto rate sembrerebbe un iteratore, che ogni volta restituisce un elemento diverso, ma è veramente molto strano.
Non capisco perché viene fuori quel risultato.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:38.



















