2012-06-18 4 views
134

Entrambi sembrano eccessivamente simili e sono curioso di sapere quale pacchetto sarebbe più vantaggioso per l'analisi dei dati finanziari.Quali sono le differenze tra Pandas e NumPy + SciPy in Python?

+12

A rischio di essere chiacchierone, ho scoperto che la base di NumPy è fantastica e Pandas lo prende alla grande e lo porta a 11. –

+12

è un peccato che questa domanda sia stata chiusa non è basata su opinon e io penso che meriti risposte molto migliori –

+1

https://www.quora.com/What-are-the-advantages-of-using-Pandas-over-Numpy-for-ML-and-Data-Analysis l'ha trovato interessante. –

risposta

212

Infatti, pandas fornisce strumenti di manipolazione dei dati di alto livello costruiti su NumPy. NumPy di ​​per sé è uno strumento di basso livello e sarà molto simile all'utilizzo di MATLAB. D'altro canto, i panda offrono funzionalità complete di serie temporali, allineamento dei dati, statistiche NA-friendly, groupby, metodi di unione e unione e molte altre comodità. Negli ultimi anni è diventato molto popolare nelle applicazioni finanziarie. Avrò un capitolo dedicato all'analisi dei dati finanziari usando i panda nel mio prossimo libro.

+142

Avresti dovuto dire che sei l'autore principale dei panda. :) Il libro in questione: http://shop.oreilly.com/product/0636920023784.do – Yktula

+2

Sarebbe corretto dire che numpy fornisce principalmente array efficienti, mentre i panda forniscono dizionari efficienti (In entrambi i casi, limitato al tipo di dati consistente piuttosto che alla forma libera.) Per me (sto solo iniziando a esaminarlo ora), questo mi colpisce come la differenza di fondo: gestione dei dati associati alle etichette (in 1d aka dicts e Tabelle 2d aka). Allineamento dei dati, join, etc diventano tutti * possibili * a causa di questo, ma per le persone che non riescono a tralasciare quella differenza sottostante non è nemmeno chiaro cosa significano questi (ad es. Cos'è "allineamento dei dati" di due array numpy?). – Brandyn

+4

Wes è da uomo. Basta dire. –

44

Numpy è richiesto da panda (e praticamente da tutti gli strumenti numerici per Python). Scipy non è strettamente richiesto per i panda ma è elencato come "dipendenza opzionale". Non direi che i panda sono un'alternativa a Numpy e/o Scipy. Piuttosto, è uno strumento extra che fornisce un modo più semplice di lavorare con dati numerici e tabulari in Python. Puoi usare le strutture dati dei panda ma liberamente attingere alle funzioni di Numpy e Scipy per manipolarle.

3

I panda offrono un ottimo modo per manipolare le tabelle, poiché è possibile semplificare il binning (binning a dataframe in pandas in Python) e calcolare le statistiche. Un'altra cosa che è fantastica nei panda è la classe Panel che è possibile unire serie di layer con proprietà diverse e combinarli usando la funzione groupby.