sto porting di un'applicazione C++ scientifica per python, e come io sono nuovo a python, alcuni problemi vengono in mente:uso migliore una tupla o un array NumPy per memorizzare le coordinate
1) Sto definendo una classe che conterrà le coordinate (x, y). Questi valori saranno accessibili più volte, ma verranno letti solo dopo l'istanza della classe. È meglio usare una tupla o una matrice numpy, sia in memoria che in tempo di accesso?
2) In alcuni casi, queste coordinate verranno utilizzate per creare un numero complesso, valutato su una funzione complessa, e verrà utilizzata la parte reale di questa funzione. Supponendo che non ci sia modo di separare parti reali e complesse di questa funzione, e la parte reale dovrà essere utilizzata alla fine, forse è meglio usare numeri direttamente complessi da memorizzare (x, y)? Quanto è pessimo il sovraccarico con la trasformazione dal complesso al reale in python? Il codice in C++ fa molte di queste trasformazioni, e questo è un grande rallentamento in quel codice.
3) Anche alcune trasformazioni di coordinate dovranno essere eseguite, e per le coordinate i valori xey saranno accessibili separatamente, la trasformazione verrà eseguita e il risultato restituito. Le trasformazioni di coordinate sono definite nel piano complesso, quindi è ancora più veloce utilizzare direttamente i componenti xey piuttosto che affidarsi alle variabili complesse?
Grazie
Perché non utilizzare solo una serie numpy di numeri complessi? – Gabe
Questo è l'approccio migliore in senso algoritmico, ma fino ad ora i miei test mi hanno mostrato, questa è la combinazione più lenta possibile. – Ivan