Di antara Matlab dan Python, bahasa apa yang baik untuk analisis data statistik umum? Apa pro dan kontra, selain aksesibilitas, untuk masing-masing?
Di antara Matlab dan Python, bahasa apa yang baik untuk analisis data statistik umum? Apa pro dan kontra, selain aksesibilitas, untuk masing-masing?
Jawaban:
Sebagai pengguna Matlab diehard selama 10+ tahun terakhir, saya sarankan Anda belajar Python. Setelah Anda cukup terampil dalam suatu bahasa, ketika Anda bekerja dalam bahasa yang Anda pelajari, sepertinya Anda tidak cukup produktif, dan Anda akan kembali menggunakan bahasa terbaik default Anda. Paling tidak, saya sarankan Anda mencoba untuk menjadi sama mahirnya dalam sejumlah bahasa (saya juga menyarankan R).
Apa yang saya sukai dari Matlab:
Yang tidak saya sukai tentang Matlab:
median
fungsi Matlab , yang melakukan semacam data, kemudian mengambil nilai tengah . Ini telah menjadi algoritma yang salah sejak 70-an.-nojvm
tampaknya membantu ...
shuffle
mungkin di kotak alat, bukan matlab stok. hampir tidak bisa lebih buruk daripada builtin randperm
yang mengembalikan semacam indeks dari vektor acak. Sekali lagi, ini mungkin algoritma yang salah (saya baru belajar tentang pengocokan Knuth-Fisher-Yates di sini di stats.SE) ..
randperm
adalah dipengaruhi oleh penyemaian randn
, sedangkan Knex-Fisher-Yates versi mex'ed mungkin tidak dapat mengakses randn seed 'secara internal', dan versi acak .m dari shuffle mungkin akan terlalu lambat.
Mari kita memecahnya menjadi tiga bidang (dari atas kepala saya) di mana pemrograman memenuhi statistik: data crunching, rutinitas numerik (optimasi dan semacamnya) dan perpustakaan statistik (pemodelan, dll).
Pada yang pertama, perbedaan terbesar adalah bahwa Python adalah bahasa pemrograman tujuan umum. Matlab sangat bagus selama dunia Anda kira-kira isomorfis menjadi array numerik fortran. Setelah Anda mulai berurusan dengan data munging dan masalah terkait, Python mengalahkan Matlab. Misalnya, lihat buku Greg Wilson: Data Crunching: Memecahkan Masalah Sehari-Hari Menggunakan Java, Python, dan banyak lagi .
Yang kedua, Matlab benar-benar bersinar dengan pekerjaan numerik. Banyak komunitas riset menggunakannya dan jika Anda mencari katakanlah, beberapa algoritma yang terkait dengan kertas dalam penginderaan terkompresi, Anda jauh lebih mungkin untuk menemukan implementasi di Matlab. Di sisi lain, Matlab adalah jenis PHP komputasi ilmiah - ia berusaha untuk memiliki fungsi untuk semua yang ada di bawah matahari. Estetika dan arsitektur yang dihasilkan menjengkelkan jika Anda seorang geek bahasa pemrograman, tetapi dalam istilah utilitarian, itu menyelesaikan pekerjaan. Banyak dari ini telah menjadi kurang relaf dengan munculnya Numpy / Scipy, Anda hanya akan menemukan optimasi dan perpustakaan pembelajaran mesin yang tersedia untuk Python. Berinteraksi dengan C sama mudahnya dalam kedua bahasa.
Tentang ketersediaan perpustakaan statistik untuk pemodelan dan semacamnya, keduanya agak kurang jika dibandingkan dengan sesuatu seperti R. (Meskipun saya menduga keduanya akan memenuhi kebutuhan 80% orang yang melakukan pekerjaan statistik.) Untuk sisi Python, lihat pertanyaan-pertanyaan ini. : Python sebagai meja kerja statistik . Untuk sisi Matlab, saya tahu ada kotak statistik, tetapi saya akan membiarkan seseorang yang lebih berpengetahuan mengisi bagian yang kosong (pengalaman saya dengan Matlab terbatas pada pekerjaan numerik yang tidak terkait dengan statistik).
Saya juga telah menjadi pengguna Matlab yang rajin selama 10+ tahun. Selama bertahun-tahun itu saya tidak punya alasan untuk bekerja di luar kotak peralatan yang saya buat untuk pekerjaan saya. Meskipun banyak fungsi dibuat untuk kotak alat, saya sering kali perlu membuat algoritma untuk analisis turnaround cepat. Karena algoritma ini sering menggunakan matematika matriks, Matlab adalah kandidat yang ideal untuk pekerjaan saya. Selain toolbox kode Matlab saya, yang lain dalam grup saya bekerja secara luas di Jawa karena ada interoperabilitas yang jelas antara bahasa. Selama bertahun-tahun saya benar-benar bahagia dengan Matlab, tetapi sekitar 3 tahun yang lalu saya memutuskan untuk memulai transisi lambat dari Matlab dan senang mengatakan bahwa saya belum membukanya dalam waktu sekitar satu tahun sekarang. Inilah alasan saya pindah:
-nodesktop
opsi itu bagus sebagian besar waktu, tetapi memiliki masalah itu.Ini hanya sedikit dari banyak keluhan saya dengan Matlab. Ini adalah salah satu atribut yang bersinar: mudah, sangat mudah untuk menulis kode dengan cepat (jika tidak jelek). Namun saya meninggalkannya, dan pencarian saya menuntun saya melalui Clojure-> JavaScript-> Python <-> Julia; ya, saya sudah ke semua tempat.