2016-12-03 23:01 GMT+01:00 Davide Olianas <dav...@davideolianas.com>: > mi trovo a dover lavorare con dei file .xyz che sono dei file di testo del > genere > > C -3.95384 -0.70179 0.00000 > C -3.93661 -2.09651 0.00000 […] > ovvero ogni riga contiene un atomo con informazione sull’elemento atomico e > le coordinate.
> Il problema su cui chiedo consigli è che > contemporaneamente mi serve poter selezionare un atomo in base ad un indice > “locale”, ovvero un indice che appartiene all’elemento chimico. In questo > caso, dovrei poter iterare sul carbonio 6 volte (indice da 0 a 5) e > sull’idrogeno pure. > Per esempio, vorrei poter fare qualcosa tipo atoms.byElementIndex('H', 0) > per selezionare il primo idrogeno. […] Se non ho capito male ti conviene usare pandas, puoi usare un DataFrame usando una selezione booleana [1] tipo h_atoms = data[data['atom'] == 'H'] e h_atoms[:, 0] per avere la prima riga tra gli atomi di idrogeno. Ci sono due indici nell'ultimo subscript perché il risultato della selezione booleana è di nuovo un DataFrame, che è bidimensionale. Pandas ha una curva di apprendimento che non è immediata, almeno non lo è stato per me, ti conviene leggere l'introduzione "10 minutes to pandas" e poi la parte specifica sulle strutture dati che ho indicato. [1]: http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection -- Andrea _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python