2014-04-27 32 views
9

Attualmente sto usando Python pandas e voglio sapere se c'è un modo per emettere i dati dai panda in julia Dataframes e viceversa. (Penso che tu possa chiamare python da Julia con Pycall ma non sono sicuro che funzioni con i dataframes) C'è un modo per chiamare Julia da python e farlo prendere nei datasrami panda s? (senza salvare in un altro formato di file come csv)Julia Dataframes vs Python panda

Quando sarebbe vantaggioso utilizzare Julia Dataframes rispetto ai panda diversi da dataset estremamente grandi ed eseguire cose con molti loop (come reti neurali)?

risposta

4

Quindi non v'è una libreria sviluppata per questo

PyJulia è una libreria utilizzata per interfacciarsi con Julia utilizzando Python 2 e 3

https://github.com/JuliaLang/pyjulia

È sperimentale, ma in qualche modo funziona

In secondo luogo Julia ha anche un front-end per pandas che è pandas.jl

https://github.com/malmaud/Pandas.jl

Sembra essere solo un wrapper per i panda ma potresti essere in grado di eseguire più funzioni utilizzando le funzioni parallele di Julia.

Per quanto riguarda il che è meglio così lontano pandas ha più veloce di I/O secondo questa reading csv in Julia is slow compared to Python

1

Sono un principiante in questo genere di cose, ma ho sicuramente utilizzato entrambi in ritardo. A dire il vero, sembrano molto paragonabili ma c'è molta più documentazione, domande di Stack Overflow, ecc relativi a Pandas quindi vorrei dare un leggero vantaggio. Non lasciare che questo fatto ti scoraggi comunque perché Julia ha alcune funzionalità sorprendenti che sto solo cominciando a capire. Con dataset di grandi dimensioni, ad esempio durante un paio di concerti, entrambi i pacchetti sono piuttosto lenti, ma anche in questo caso i panda sembrano avere un leggero vantaggio (in nessun caso considererei il mio benchmarking definitivo). Senza una comprensione più sfumata di ciò che stai cercando di raggiungere, è difficile per me immaginare una circostanza in cui potresti persino voler chiamare una funzione di Pandas mentre lavori con un Julia DataFrame o viceversa. A meno che tu non stia facendo qualcosa di piuttosto cerebrale o lavorando con dataset davvero grandi, non riesco nemmeno a vedere che sbaglio. Quando dici "emetti i dati" cosa intendi? Non potresti scrivere l'oggetto dati Pandas su un file e quindi aprire/manipolare quel file in un Julia DataFrame (come dici tu)? Di nuovo, a meno che tu non abbia una buona macchina che legge i concerti di dati in entrambi i panda o un Julia DataFrame è noioso e può essere proibitivamente lento.

+0

la ragione per cui mi chiedo è il fattore limitante per il pitone in velocità è il loop. A meno che non si stia programmando con 'Cython', le funzioni personalizzate che richiedono un ciclo for rallenteranno lo script. Panda ha solo un leggero vantaggio perché Wes è fantastico nella codifica per caricare CSV mentre julia è appena iniziata nella libreria di Dataframes. – ccsv

+0

Quando dico "dati di output" intendo se chiami Julia per eseguire una funzione, puoi ottenere una risposta. Proprio come quando chiami Matplotlib con Pycall ottieni qualcosa in un formato che julia comprende. Fondamentalmente sto cercando una libreria come 'Pycall', ma per Python simile a' Ironpython' che è usato per C#, 'Cython' per C, e' Jython' per Java – ccsv

+0

Ancora per qualche motivo (probabilmente la mia stessa ottusità), I non riesco ancora ad analizzare ciò che stai cercando di fare. Puoi chiamare python da Julia e, inoltre, puoi scrivere codice/funzioni in C e chiamarlo direttamente in Julia. È veloce e facile.L'ho fatto solo con qualcosa di molto semplice, anche se concettualmente immagino che funzionerebbe allo stesso modo indipendentemente dalla natura del codice. –

Problemi correlati