Spostamento su Python (SciPy e NumPy) per Scientific Computing [duplicato]

10

Basta leggere una presentazione sull'utilizzo di Python per Scientific Computing. Attualmente sto usando MATLAB (licenza per studenti FTW, che scadrà quando mi diplomerò presto).

Quindi mi stavo chiedendo quanto siano maturi SciPy e NumPy rispetto a fare affidamento su di loro per tutto lo Scientific Computing che devo fare. Il vantaggio è che è gratuito. Mi occupo principalmente di elaborazione dei segnali, audio, tipo di calcolo acustico.

Posso immaginare che i progetti NumPy e SciPy si stiano evolvendo rispetto al supporto di tecniche più complesse. Quindi, quanto velocemente si stanno evolvendo , ci sono grandi comunità dietro di loro?

Infine, ci sono altre soluzioni ?

    
posta notthetup 09.05.2011 - 11:30
fonte

5 risposte

5

In breve: Python è un linguaggio molto migliore di Matlab , e ha caratteristiche di linguaggio generale più complete, ma Matlab ne ha un altro set completo di strumenti informatici scientifici di Python.

Octave ha anche strumenti scientifici più completi di Python, ed è un linguaggio più vicino a Matlab se già lo conosci, ma condivide anche i difetti della lingua. Octave e SciPy sono gratuiti, Matlab non è gratuito.

I am mainly focused on Signal Processing, Audio, Acoustics kind of computing.

Anch'io, e ho trovato SciPy mancante. Alcuni esempi:

  • La documentazione è scadente o inesistente per molte funzioni
  • Strumenti di progettazione filtri converti in funzione di trasferimento rappresentazione internamente, quindi i filtri di ordine superiore soffrono di problemi di errore numerico. (risolto)
  • Altre funzioni come freqs accettano solo tf rappresentazione, che, di nuovo, causa problemi di errore numerico.
  • Non supporta i filtri nella rappresentazione delle sezioni secondarie
  • FFT non sono veloci
  • Un sacco di funzioni di Octave / Matlab non esistono ancora in SciPy, e non può essere tradotto direttamente da Octave perché di licenza GPL vs BSD
  • ...

Tuttavia preferisco ancora SciPy, perché la lingua è molto più bella da usare e fa la maggior parte di ciò di cui ho bisogno. È gratuito e open-source, e sviluppato attivamente, e puoi contribuire facilmente semplicemente premendo "Modifica" su Github. Dal momento che principalmente sto usando questo per apprendere e mettere in pratica l'elaborazione del segnale, non considero un problema il fatto che io debba contribuire alla documentazione ( vecchio vs nuovo ) o miglioramenti io stesso. Questo è il genere di cose che voglio comunque imparare.

Inoltre, mentre cercavo di correggere alcune di queste cose, ho scoperto alcuni difetti negli strumenti di progettazione dei filtri di Matlab: 1 2 Quindi lo sviluppo open-source con molti casi di test ha il suo anche i vantaggi.

    
risposta data 14.05.2013 - 16:34
fonte
8

Dovresti esaminare Sage ; è l'alternativa open source a Matlab, Mathematica e altri. Il linguaggio di base è python, quindi puoi usare tutte le librerie python in modo nativo, e ha collegamenti per la maggior parte dei software matematici liberi e non liberi, così puoi usare Matlab, Mathematica e altri al suo interno. Ha molto supporto all'interno della comunità matematica e il suo sviluppatore principale è molto stimato e impegnato nel progetto.

    
risposta data 09.05.2011 - 14:14
fonte
5

Nell'argomento "Altre soluzioni": dai uno sguardo anche a Octave e SciLab . Questi sono solitamente abbastanza vicini a Matlab per rendere la traduzione degli script abbastanza indolore.

Tuttavia, passare a Python sembra anche una buona idea! Sembra esserci un lavoro sull'integrazione con Python in SciLab .

    
risposta data 09.05.2011 - 14:21
fonte
3

Anche in "altre soluzioni":

Sono molto sul carrozzone Python-for-science, ma il mio sostituto gratuito / open source "Non ho una licenza Matlab" spesso finisce con R invece.

Trovo piuttosto frustrante la sintassi-saggio (gli indici partono da 1? l'assegnazione è fatta "varname < - value"? come on ...), ma è abbastanza onnipresente almeno nella mia disciplina scientifica, l'ecologia, dove gli scienziati potrebbero non essere generalmente alfabetizzati alla programmazione (e quindi sconcertati quando invio loro un modulo Python), ma usano pacchetti statistici di tipo Matlab / R - Ho portato il codice Matlab in R per le applicazioni di tipo signal processing (non personalmente per audio in specifico, ma so che i ricercatori di uccelli lo usano per questo).

    
risposta data 10.05.2011 - 21:25
fonte
1

Python con SciPy / NumPy è una piattaforma piuttosto matura per il calcolo scientifico.

L'unico posto in cui è discutibile che sia piuttosto debole è la statistica di livello superiore - Non sono stato terribilmente impressionato dalle offerte in quell'area, e nonostante il mio profondo amore per Python non l'ho adottato come un workbench di statistiche a tutti . La buona notizia è che puoi aggirare questo problema chiamando R da Python.

Con l'aggiunta di R (o un altro linguaggio di statistica - l'unico altro che considererei se non veramente avesse un requisito specifico sarebbe SAS, e questo è costoso), la combinazione dei due è una piattaforma molto solida, open source e in via di sviluppo. R funziona un po 'diversamente dalla maggior parte dei linguaggi di programmazione, a causa di una filosofia leggermente diversa. È progettato per come pensano gli statistici, piuttosto che per i programmatori. Quindi cose come gli indici che iniziano a uno - spesso perché è anche "Soggetto 1", "ID0001" ecc.

    
risposta data 25.09.2011 - 10:17
fonte

Leggi altre domande sui tag