Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa tergesa-gesa mencari pengganti Python?

Mengapa tergesa-gesa mencari pengganti Python?

王林
Lepaskan: 2023-04-11 21:10:09
ke hadapan
977 orang telah melayarinya

​Penterjemah |. Liu Tao

Pengulas|. Sun Shujuan

Kecerdasan buatan (AI) dan pembelajaran mesin (ML) adalah teman harian kami macam mana hidup nanti. Setiap kali kita mendengar perkataan pembelajaran mesin, perkara pertama yang terlintas di fikiran ialah Python. Oleh kerana Python telah lama menjadi suara pembelajaran mesin, ia telah memainkan peranan penting dalam membantu melaksanakan aspek teknikal pembelajaran mesin.

Python mungkin bahasa pembelajaran mesin yang paling indah, digunakan oleh 48.24% pembangun. Oleh kerana Python mempunyai pakej peringkat rendah yang berkuasa dan mudah serta antara muka API peringkat tinggi, ia mempunyai kelebihan yang tiada tandingan dalam semua bidang pengkomputeran saintifik, tetapi ia juga mempunyai beberapa kelemahan apabila digunakan untuk tugas tertentu. Oleh itu, keperluan untuk bahasa alternatif kepada Python menjadi semakin biasa.

Pada masa ini, banyak bahasa baru muncul setanding atau lebih baik daripada Python dari segi prestasi. Jadi ia bukan lagi satu-satunya pilihan untuk pembelajaran mesin. Scala, Julia, MQL5 dan bahasa lain yang bukan superset Python boleh digunakan untuk membangunkan dan menyediakan aplikasi pembelajaran mesin. Jadi pembelajaran mesin tidak lagi terhad kepada Python.

Artikel ini akan meneroka kemunculan bahasa pembelajaran mesin baharu, cara bahasa tersebut menghakis bahagian pasaran Python dan cara pembelajaran mesin akan berubah pada masa hadapan.

1. Kelemahan Python

Mari kita bincangkan beberapa keburukan Python , kelemahan ini sering dihadapi oleh pembangun dan saintis data.

Prestasi dan Kelajuan

Pembangunan python adalah pantas, tetapi pengiraan sangat perlahan. Ia menggunakan penterjemah dan bukannya penyusun. Ia lebih perlahan daripada bahasa pengaturcaraan sains data lain kerana melaksanakan kod berjujukan. Python lebih perlahan daripada C kerana C mempunyai banyak alat dan perpustakaan yang berguna. Melainkan anda menguasai kod vektor, anda akan melihat betapa perlahannya kod itu.

Cython ialah superset Python Ia menyusun kod sumber Python ke dalam kod bahasa C Perkara yang paling penting ialah menyediakan kelajuan pengkomputeran tahap bahasa C tanpa sumber pengkomputeran tambahan. Ramai pengaturcara menggunakan Cython untuk menulis kod Python yang berjalan sepantas bahasa C, tetapi lebih ringkas dan mudah dibaca.

Keterbatasan Reka Bentuk

Python mempunyai kelemahan besar dalam reka bentuknya, yang disebabkan oleh penaipan dinamiknya. Secara amnya, pembolehubah yang ditaip secara dinamik dalam bahasa pengaturcaraan tidak memerlukan pengisytiharan khas. Python menggunakan menaip itik, yang boleh mengelirukan. Dalam menaip itik, kelas atau sifat objek adalah kurang penting daripada fungsinya. Menaip itik tidak memerlukan pemeriksaan jenis. Anda juga boleh mengesahkan proses atau sifat.

Penggunaan memori yang tidak cekap

Python mengambil banyak memori kerana strukturnya yang besar. Selain itu, jenis data Python adalah fleksibel dari segi penggunaan memori. Ia tidak sesuai untuk tugas intensif memori. Jenis datanya yang fleksibel juga mengakibatkan penggunaan memori. Oleh itu, pengurusan memori dalam Python menjadi mencabar apabila anda mencipta sistem Python yang besar dan lama.

Benang tidak mencukupi

Berbanding dengan bahasa lain, Python kurang cekap benang. Walaupun Python berbilang benang, hanya satu utas boleh dilaksanakan pada satu masa. Oleh itu, Python berbilang benang menyediakan kecekapan pemprosesan satu benang. Python mempunyai kunci penterjemah global (GIL) yang hanya membenarkan satu utas untuk menggunakannya pada satu masa. Berbilang benang boleh dijalankan serentak hanya jika Python menggunakan perpustakaan asli. Di samping itu, Jython, superset Python, boleh melaksanakan multi-threading, manakala Python tidak boleh.

2. Mengapakah saintis data mencari alternatif Python?

Python memang hebat. Tetapi ia tidak boleh menjadi The Flash dan The Incredible Hulk pada masa yang sama! Seseorang mungkin mahu The Flash, seseorang mungkin mahu Hulk. Keperluan pengguna adalah pelbagai. Begitu juga, Python tidak direka untuk aplikasi matematik dan sains data. Ia memerlukan perpustakaan pihak ketiga seperti NumPy atau Tensorflow, khusus untuk algoritma pembelajaran mendalam. Oleh itu, bahasa pengaturcaraan khusus data mempunyai kelebihan berbanding Python.

Sebagai contoh, dalam dunia perniagaan, pembelajaran mesin memerlukan kelajuan dan kebolehskalaan untuk mengurangkan masa pelaksanaan. Anda tidak boleh membuat pelanggan menunggu terlalu lama. Jadi anda memerlukan bahasa ML yang lebih pantas (Bahasa Pengaturcaraan Fungsian Tujuan Umum) untuk melaksanakannya. Lagi cepat lagi bagus.

Kini, Python adalah pantas, tetapi apa lagi yang lebih pantas daripada Python? Ya, itu Julia, atau Scala!

Dalam kes ini, saintis data lebih suka menggunakan bahasa pengaturcaraan yang berbeza daripada Python.

3 alternatif Python untuk sains data

dalam pelbagai persekitaran aplikasi , terdapat beberapa alternatif Python yang berprestasi baik atau lebih baik daripada Python. Berikut ialah beberapa alternatif kepada Python untuk sains data:

(1) Julia

Julia ialah bahasa pengaturcaraan dinamik peringkat tinggi baharu yang inovatif, pantas dan selesa. Ia adalah bahasa tujuan umum yang mampu menulis pelbagai aplikasi. Perlu dinyatakan bahawa sebahagian besar ekosistem dan fungsi pakejnya ditujukan kepada pengiraan berangka lanjutan, menjadikannya ideal untuk pembelajaran mesin.

Julia dibina pada berbilang bahasa, termasuk C dan bahasa kelas dinamik peringkat tinggi seperti Python, R dan MATLAB. Julia menggunakan jenis pilihan, sintaks dan ciri bahasa ini kerana matlamat Julia adalah untuk menggabungkan kekuatan mereka dan menghapuskan kelemahan mereka.

Mengapa tergesa-gesa mencari pengganti Python?

Pencipta Julia ingin membangunkan bahasa yang boleh mengendalikan pengkomputeran saintifik, pembelajaran mesin, perlombongan data, algebra linear berskala besar sepantas C , teragih dan selari pengkomputeran. Walau bagaimanapun, mereka akhirnya membangunkan bahasa yang lebih pantas. Walaupun Python semakin pantas, Julia masih mengatasinya.

Julia memudahkan banyak tatatanda matematik yang digunakan dalam pembelajaran mesin. Ia menyediakan pakej pengaturcaraan GPU yang pelbagai seperti ArrayFire, yang membolehkan GPU melaksanakan kod tujuan umum. Setiap pakej mempunyai model pengaturcaraan tersendiri, contohnya, NVIDIA mempunyai CUDA Jl, AMD mempunyai AMDGPU dan oneAPI.

Jurutera pembelajaran mesin boleh menggunakan Julia dalam kelompok besar dengan pantas, memanfaatkan alatan berkuasanya seperti MLBase.jl, Flux.jl (pembelajaran mendalam), MLJ.j (pembelajaran mesin am) dan Knet.jl ( pembelajaran mendalam). Flux ialah perpustakaan pembelajaran mesin dalam berkelajuan tinggi yang didatangkan pramuat dengan alatan tambahan untuk memaksimumkan keupayaan Julia. Begitu juga, ScikitLearn.jl, TensorFlow.jl dan MXNet.jl untuk aplikasi ML disertakan.

Julia pandai menyelesaikan masalah pengiraan yang kompleks. Oleh itu, banyak universiti terkenal, termasuk Universiti Stanford dan Universiti Metropolitan Tokyo, menawarkan kursus Julia. Prestasinya juga sangat mantap berbanding Python.

(2) Scala

Ramai eksekutif industri seperti Logan Kilpatrick percaya bahawa Julia ialah masa depan pembelajaran mesin dan sains data.

Ciri utama Julia:

  • Beberapa ciri teras Julia membolehkan pengiraan sains data yang cekap:
  • Pengiraan Julia adalah pantas. Ia adalah 2-20 kali lebih cepat daripada Python;
  • Fungsi perpustakaan yang fleksibel dan kaya; >
  • Urus proses lain menggunakan fungsi seperti cangkerang;
  • Dibangunkan untuk pengkomputeran selari dan teragih; perisian percuma dan sumber terbuka.
  • Scala ialah bahasa pengaturcaraan peringkat tinggi yang menyokong kedua-dua teknik pengaturcaraan berorientasikan objek dan berfungsi. Martin Odersky menciptanya dan melancarkannya secara rasmi pada Jun 2004. Scala semakin popular di kalangan pembangun dan melonjakkan teknologi hari ini.
  • Scala ialah bahasa Java Virtual Machine (JVM) yang serasi dengan aplikasi dan pustaka Java. Kerana ia tidak mempunyai konsep data asas, ia sering dianggap sebagai bahasa statik. Seni bina berbilang paradigma dan terasnya adalah kompleks.
  • ApacheSpark ialah penstriman data masa nyata dan alat pemprosesan data yang berkuasa dan pantas. Scala Spark memudahkan pemetaan kompleks, ETL dan tugas pemprosesan data yang besar. Scala membolehkan pengguna melaksanakan fungsi Spark baharu dengan memahami kod tersebut. Keserasian Scala dengan Java membolehkan pengaturcara menguasai konsep berorientasikan objek dengan cepat.
  • SparkMLlib mengandungi algoritma berkualiti tinggi dan prestasi cemerlang dalam Spark, menjadikannya perpustakaan pembelajaran mesin berskala. Pengelasan, regresi, pengelompokan, penapisan kolaboratif dan pengurangan dimensi semuanya disertakan dalam perpustakaan pembelajaran mesin MLlib Spark. Selain itu, Breeze, Spire, Saddle dan Scalalab ialah beberapa perpustakaan ML lain yang membantu dalam mencipta aplikasi pemprosesan data yang berkuasa.
Apache Kafka ialah platform penstriman acara yang diedarkan sumber terbuka Dengan populariti Python, Spark juga menjadi popular. Apa-apa sahaja yang dilaksanakan secara perlahan dalam Scala Spark pasti akan ranap dalam PySpark. Selain itu, anda boleh menggunakan perpustakaan TensorFlow Scala untuk mencipta sistem penyajian berprestasi tinggi yang boleh disesuaikan untuk model pembelajaran mesin.

Penaipan statik Scala memudahkan aplikasi yang kompleks. Masa jalan JVM dan JavaScriptnya membolehkan sistem berprestasi tinggi mengakses perpustakaan dengan mudah. Selain itu, prestasinya lebih baik daripada Python. Ia juga memegang sendiri berbanding dengan Python.

Ciri Utama Scala

Scala mempunyai beberapa ciri teras yang membolehkan pengiraan sains data yang cekap:

Scala lebih pantas daripada Python 10 kali ganda ;

Mempunyai mekanisme inferens jenis lanjutan; Kelas kes dan padanan corak; -fungsi pesanan;

Gunakan objek Singleton dan bukannya pembolehubah statik; yang dilaksanakan pada JVM.

  • (3) MQL5
  • MQL5 ialah bahasa pengaturcaraan berorientasikan objek lanjutan yang menyediakan analisis data lanjutan dan fungsi pembelajaran mesin. Ia berdasarkan bahasa pengaturcaraan yang digunakan secara meluas dan terkenal C++ dan terkenal dengan kelajuan dan serba boleh.
  • MQL5 bukan bahasa ML harian seperti Python, Julia atau Scala. Ia dicipta khusus untuk pasaran kewangan memantau instrumen kewangan. Pada asasnya, bahasa itu serupa dengan bahasa lain tetapi mempunyai ciri unik. MQL5 menyokong integer, boolean, literal, rentetan, tarikh, masa dan penghitungan. Ia mentakrifkan kedua-dua struktur dan kelas sebagai jenis data yang kompleks.
  • Dokumentasi bahasa MQL5 menyenaraikan fungsi, operasi, perkataan terpelihara, dsb. Selain itu, ia menyediakan jenis data seperti integer, Boolean, literal, rentetan, tarikh dan masa. Ia mempunyai struktur dan kelas yang kompleks. Selain itu, dokumentasi termasuk definisi kelas perpustakaan standard untuk strategi perdagangan, panel kawalan, kesan visual tersuai, akses fail, dsb.

    Selain itu, MQL5 mempunyai lebih daripada 1,500 perpustakaan kod sumber untuk pembangunan aplikasi baharu. Anda boleh menggunakan perpustakaan ALGLIB yang mengandungi sejumlah besar fungsi analisis berangka. Begitu juga, terdapat perpustakaan TimeSeries untuk memproses siri masa dan perpustakaan Fuzzy untuk membangunkan model fuzzy dan pelbagai perpustakaan lain.

    MQL5 ialah bahasa pengaturcaraan berkuasa yang boleh membantu anda membina sistem masa nyata dan memberikan bantuan visual membuat keputusan. MQL5 menyokong penghitungan, struktur, kelas dan peristiwa. Dengan menambah bilangan fungsi terbenam utama, program MQL5 boleh berkomunikasi dengan DLL.

    MQL5 mempunyai sintaks yang serupa dengan C++, menjadikannya mudah untuk menukar atur cara yang ditulis dalam bahasa pengaturcaraan berbeza ke dalam program MQL5. Oleh itu, anda boleh mencapai kecekapan yang sama seperti C++ apabila menggunakan analisis data, kecerdasan buatan atau alat kewangan sebagai robot dagangan.

    Ciri utama MQL5

    Sesetengah fungsi teras MQL5 membolehkan pengiraan sains data yang cekap:

    • MQL5 adalah berdasarkan C++ daripada. Oleh itu, ia adalah sepantas C++ dan lebih pantas daripada Python; Perpustakaan;
    • boleh mentakrifkan pemalar dan penghitungan standard. Seni bina perkhidmatan untuk menyimpan maklumat;
    • Tukar skema warna, buat panel kawalan, tambah simbol tersuai dan eksport carta harga daripada program MQL5; dari masa lalu ke masa hadapan;
    • Nyahpepijat Forex Expert Advisor dalam carta dan penguji berbilang mata wang
    • 4.
    • Anda Alternatif Python ML yang manakah harus saya pilih?
    • Bahasa pengaturcaraan adalah seperti memandu kereta lumba Kereta yang sesuai adalah penting, apatah lagi pemandu. Begitu juga, sebagai saintis data, anda adalah pemandu kereta sukan unik ini.
    • Setiap saintis data atau pembangun mempunyai keperluan dan spesifikasi mereka sendiri untuk teknologi tertentu. Pilihan teknologi terbaik bergantung pada sudut tontonan dan fungsi yang anda perlukan. Oleh itu, sukar untuk membuat pilihan terakhir.

    Jika anda ingin melaksanakan pengkomputeran berbilang proses dan memerlukan kelajuan pengkomputeran yang sangat tinggi, anda boleh memilih Julia. Ia adalah yang terpantas daripada ketiga-tiganya. Sebaliknya, jika anda melakukan projek yang besar, Scala sepatutnya menjadi pilihan yang lebih baik kerana ia melakukan tugas itu. Jika anda berminat dengan instrumen kewangan, MQL5 adalah pilihan terbaik. Begitu juga, setiap bahasa pengaturcaraan mempunyai ciri dan bidang kepakaran tersendiri. Oleh itu, yang terbaik adalah memilih bahasa yang memenuhi keperluan dan spesifikasi anda.

    5.

    Ringkasan

    Pembelajaran mesin ialah proses yang berterusan dan berkembang. Lama kelamaan, ia muncul dengan bahasa Standardized ML (SML) dan menjadi popular dalam Python. Hari ini, terdapat pelbagai perkembangan dalam bahasa pembelajaran mesin dengan keperluan yang berbeza.

    Ringkasnya, Python ialah bahasa pembelajaran mesin yang sangat baik. Tetapi Python bukanlah bahasa khusus sains data, dan terdapat lebih banyak bahasa pengaturcaraan moden yang boleh melaksanakan tugas tertentu dengan lebih cekap.

    Akibatnya, bahasa pengaturcaraan baru muncul mendapat bahagian pasaran dan berkembang dalam bidang pembelajaran mesin. Mudah-mudahan, mereka juga akan menjadi lebih biasa dalam beberapa tahun akan datang. Pautan asal: https://hackernoon.com/not-only-python-problems-errors-and-alternatives

    Pengenalan penterjemah

    Liu Tao, editor komuniti 51CTO, adalah orang yang bertanggungjawab dalam pengesanan dan kawalan pelancaran sistem untuk perusahaan pusat yang besar adalah untuk menyemak dengan ketat imbasan yang tidak dijawab, ujian penembusan, pemeriksaan garis dasar dan tugas pengesanan lain untuk penerimaan pelancaran sistem mempunyai pengalaman bertahun-tahun dalam pengurusan keselamatan rangkaian Pengalaman dalam pembangunan dan pertahanan PHP dan Web, pengalaman penggunaan dan pengurusan Linux, dan pengalaman yang kaya dalam pengauditan kod, ujian keselamatan rangkaian dan perlombongan ancaman. Mahir dalam pengauditan SQL, pengesanan automatik SQLMAP, pengauditan XSS, pengauditan Metasploit, pengauditan CSRF, pengauditan webshell, pengauditan maltego dan teknologi lain di bawah Kali.

Atas ialah kandungan terperinci Mengapa tergesa-gesa mencari pengganti Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan