Heim  >  Artikel  >  Backend-Entwicklung  >  Warum die Eile, einen Ersatz für Python zu finden?

Warum die Eile, einen Ersatz für Python zu finden?

王林
王林nach vorne
2023-04-11 21:10:09956Durchsuche

​Übersetzer|Liu Tao

Rezensent|Sun Shujuan

Künstliche Intelligenz (KI) und maschinelles Lernen (ML) sind unsere täglichen Begleiter, und das ist schwierig Stellen Sie sich ein Leben ohne Algorithmen und statistische Modelle vor. Wenn wir das Wort „maschinelles Lernen“ hören, fällt uns als Erstes Python ein. Da Python seit langem die Stimme des maschinellen Lernens ist, spielt es eine wichtige Rolle bei der Umsetzung der technischen Aspekte des maschinellen Lernens.

Python ist wahrscheinlich die schönste Sprache für maschinelles Lernen und wird von 48,24 % der Entwickler verwendet. Da Python über leistungsstarke und praktische Low-Level-Pakete und High-Level-API-Schnittstellen verfügt, bietet es in allen Bereichen des wissenschaftlichen Rechnens beispiellose Vorteile, weist jedoch bei der Verwendung für bestimmte Aufgaben auch einige Nachteile auf. Daher wird der Bedarf an alternativen Sprachen zu Python immer größer.

Derzeit sind viele neue Sprachen hinsichtlich der Leistung gleichwertig mit Python oder sogar besser als Python. Es ist also nicht mehr die einzige Option für maschinelles Lernen. Scala, Julia, MQL5 und andere Sprachen, die keine Obermenge von Python sind, können zur Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen verwendet werden. Maschinelles Lernen ist also nicht mehr auf Python beschränkt.

In diesem Artikel wird die Entstehung neuer Sprachen für maschinelles Lernen untersucht, wie sie Pythons Marktanteil untergraben und wie sich maschinelles Lernen in Zukunft verändern wird.

1. Nachteile von Python

# 🎜🎜#Lassen Sie uns einige der Nachteile von Python besprechen, mit denen Entwickler und Datenwissenschaftler häufig konfrontiert sind.

Leistung und Geschwindigkeit

Python-Entwicklungsgeschwindigkeit ist hoch, aber die Berechnungsgeschwindigkeit ist sehr langsam. Es verwendet einen Interpreter anstelle eines Compilers. Aufgrund der Ausführung von sequentiellem Code ist es langsamer als andere Data-Science-Programmiersprachen. Python ist langsamer als C, da C über viele nützliche Tools und Bibliotheken verfügt. Sofern Sie sich nicht mit vektorisiertem Code auskennen, werden Sie feststellen, wie langsam er ist.

Cython ist eine Obermenge von Python, die Python-Quellcode in C-Sprachcode kompiliert. Das Wichtigste ist, eine Rechengeschwindigkeit auf C-Sprachebene ohne zusätzliche Rechenressourcen bereitzustellen. Viele Programmierer verwenden Cython, um Python-Code zu schreiben, der genauso schnell wie die C-Sprache läuft, aber einfacher und leichter zu lesen ist.

Designeinschränkungen

Python weist große Designfehler auf, die durch die dynamische Typisierung verursacht werden. Im Allgemeinen erfordern dynamisch typisierte Variablen in Programmiersprachen keine spezielle Deklaration. Python verwendet Duck-Typing, was verwirrend sein kann. Beim Duck-Typing sind die Klasse oder Eigenschaften eines Objekts weniger wichtig als seine Funktionalität. Für die Ententypisierung ist keine Typprüfung erforderlich. Sie können auch Prozesse oder Eigenschaften überprüfen.

Ineffizienter Speicherverbrauch

Python beansprucht aufgrund seiner riesigen Struktur viel Speicher. Darüber hinaus sind Python-Datentypen hinsichtlich des Speicherverbrauchs flexibel. Es ist nicht für speicherintensive Aufgaben geeignet. Seine flexiblen Datentypen führen auch zu einem Speicherverbrauch. Daher wird die Speicherverwaltung in Python zu einer Herausforderung, wenn Sie große und lang laufende Python-Systeme erstellen.

Unzureichende Threads

Im Vergleich zu anderen Sprachen sind Python-Threads weniger effizient. Obwohl Python mehrere Threads unterstützt, kann jeweils nur ein Thread ausgeführt werden. Daher bietet Multithread-Python eine Single-Thread-Verarbeitungseffizienz. Python verfügt über eine globale Interpretersperre (GIL), die es jeweils nur einem Thread erlaubt, sie zu verwenden. Mehrere Threads können nur dann gleichzeitig ausgeführt werden, wenn Python native Bibliotheken verwendet. Darüber hinaus kann Jython, eine Obermenge von Python, Multithreading implementieren, Python hingegen nicht.

2. Warum suchen Datenwissenschaftler nach Python-Alternativen? Python ist wirklich großartig. Aber es kann nicht gleichzeitig The Flash und The Incredible Hulk sein! Jemand möchte vielleicht The Flash, jemand möchte vielleicht den Hulk. Die Bedürfnisse der Nutzer sind vielfältig. Ebenso ist Python nicht für Anwendungen in den Bereichen Mathematik und Datenwissenschaft konzipiert. Es erfordert eine Drittanbieterbibliothek wie NumPy oder Tensorflow, die auf Deep-Learning-Algorithmen spezialisiert ist. Daher haben datenspezifische Programmiersprachen Vorteile gegenüber Python.

In der Geschäftswelt erfordert maschinelles Lernen beispielsweise Geschwindigkeit und Skalierbarkeit, um die Ausführungszeit zu verkürzen. Man kann Kunden nicht zu lange warten lassen. Für die Ausführung benötigen Sie also schnellere ML-Sprachen (General Purpose Functional Programming Languages). Je schneller, desto besser.

Nun ist Python bereits schnell, aber was kann schneller sein als Python? Ja, es ist Julia oder Scala!

In diesem Fall verwenden Datenwissenschaftler lieber eine andere Programmiersprache als Python.

3. Python-Alternativen für die Datenwissenschaft

#🎜 🎜 #

Es gibt mehrere Python-Alternativen, die in einer Vielzahl von Anwendungsumgebungen genauso gut oder besser als Python funktionieren. Hier sind einige Python-Data-Science-Alternativen:

(1)Julia

Julia ist eine neue dynamische Programmiersprache auf hohem Niveau, die innovativ, schnell und komfortabel ist. Es handelt sich um eine Allzwecksprache, die in der Lage ist, eine Vielzahl von Anwendungen zu schreiben. Es ist erwähnenswert, dass ein großer Teil des Ökosystems und der Funktionalität des Pakets auf fortgeschrittene numerische Berechnungen ausgerichtet ist, was es ideal für maschinelles Lernen macht.

Julia basiert auf mehreren Sprachen, einschließlich C und dynamischen Hochklassensprachen wie Python, R und MATLAB. Julia greift auf die optionalen Typen, Syntax und Funktionen dieser Sprachen zurück, da Julias Ziel darin besteht, ihre Stärken zu kombinieren und ihre Schwächen zu beseitigen.

Warum die Eile, einen Ersatz für Python zu finden?

Julias Schöpfer wollten eine Sprache entwickeln, die wissenschaftliches Rechnen, maschinelles Lernen, Data Mining, lineare Algebra im großen Maßstab sowie verteiltes und paralleles Rechnen so schnell wie C bewältigen kann. Allerdings entwickelten sie schließlich eine Sprache, die schneller war. Auch wenn Python immer schneller wird, übertrifft Julia es immer noch.

Julia vereinfacht viele mathematische Notationen für maschinelles Lernen. Es bietet verschiedene GPU-Programmierpakete wie ArrayFire, die es der GPU ermöglichen, Allzweckcode auszuführen. Jedes Paket hat sein eigenes einzigartiges Programmiermodell, zum Beispiel hat NVIDIA CUDA Jl, AMD hat AMDGPU und oneAPI.

Ingenieure für maschinelles Lernen können Julia schnell in großen Clustern bereitstellen und dabei von leistungsstarken Tools wie MLBase.jl, Flux.jl (Deep Learning), MLJ.j (allgemeines maschinelles Lernen) und Knet.jl (Deep Learning) profitieren. Flux ist eine Hochgeschwindigkeitsbibliothek für tiefes maschinelles Lernen, in der zusätzliche Tools vorinstalliert sind, um Julias Fähigkeiten zu maximieren. Ebenso sind ScikitLearn.jl, TensorFlow.jl und MXNet.jl für ML-Anwendungen enthalten.

Julia ist gut darin, komplexe Rechenprobleme zu lösen. Daher bieten viele berühmte Universitäten, darunter die Stanford University und die Tokyo Metropolitan University, Julia-Kurse an. Auch die Leistung ist im Vergleich zu Python sehr solide.

(2) Scala

Zahlreiche Branchenmanager wie Logan Kilpatrick glauben, dass Julia die Zukunft des maschinellen Lernens und der Datenwissenschaft ist.

Hauptfunktionen von Julia:

  • Einige Kernfunktionen von Julia ermöglichen effiziente Data-Science-Berechnungen:
  • Julia ist schnell. Es ist 2-20-mal schneller als Python.
  • Eingebauter Paketmanager.
  • PyCall- und CCall-Pakete Bereitstellung von Parallelität und Entwicklung für verteiltes Rechnen;
  • Generieren Sie automatisch effizienten Code für verschiedene Parametertypen.
  • Kostenlose und Open-Source-Software mit MIT-Lizenz.
  • Scala ist eine höhere Programmiersprache, die sowohl objektorientierte als auch funktionale Programmiertechniken unterstützt. Martin Odersky hat es erfunden und im Juni 2004 offiziell auf den Markt gebracht. Scala erfreut sich bei Entwicklern wachsender Beliebtheit und übertrifft die heutige Technologie.
  • Scala ist eine Java Virtual Machine (JVM)-Sprache, die mit Java-Anwendungen und -Bibliotheken kompatibel ist. Da ihr das Konzept der Basisdaten fehlt, wird sie oft als statische Sprache betrachtet. Seine Multi-Paradigma- und Multi-Core-Architektur ist komplex.
  • ApacheSpark ist ein leistungsstarkes und schnelles Echtzeit-Datenstreaming- und Datenverarbeitungstool. Scala Spark erleichtert komplexe Mapping-, ETL- und große Datenverarbeitungsaufgaben. Mit Scala können Benutzer neue Spark-Funktionen implementieren, indem sie den Code verstehen. Die Kompatibilität von Scala mit Java ermöglicht es Programmierern, objektorientierte Konzepte schnell zu beherrschen.

SparkMLlib enthält hochwertige Algorithmen und eine hervorragende Leistung in Spark, was es zu einer skalierbaren Bibliothek für maschinelles Lernen macht. Klassifizierung, Regression, Clustering, kollaborative Filterung und Dimensionsreduktion sind alle in der MLlib-Bibliothek für maschinelles Lernen von Spark enthalten. Darüber hinaus sind Breeze, Spire, Saddle und Scalalab weitere ML-Bibliotheken, die bei der Erstellung leistungsstarker Datenverarbeitungsanwendungen helfen.

Apache Kafka ist eine verteilte Open-Source-Event-Streaming-Plattform. Mit der Popularität von Python ist auch Spark populär geworden. Alles, was in Scala Spark langsam ausgeführt wird, stürzt in PySpark zwangsläufig ab. Darüber hinaus können Sie die TensorFlow Scala-Bibliothek verwenden, um ein anpassungsfähiges, leistungsstarkes Bereitstellungssystem für Modelle des maschinellen Lernens zu erstellen.

Scalas statische Typisierung erleichtert komplexe Anwendungen. Seine JVM- und JavaScript-Laufzeit ermöglicht Hochleistungssystemen den einfachen Zugriff auf Bibliotheken. Darüber hinaus ist seine Leistung besser als die von Python. Auch im Vergleich zu Python kann es sich behaupten.

Hauptfunktionen von Scala

Einige Kernfunktionen von Scala ermöglichen effiziente datenwissenschaftliche Berechnungen:

Scala ist 10-mal schneller als Python;

verfügt über einen erweiterten Typinferenzmechanismus; Matching;

Verfügt über eine prägnante, aber lesbare ausdrucksstarke Syntax;
  • Verwendet Singleton-Objekte anstelle von statischen Variablen;
  • Scala Der Quellcode wird kompiliert eine „.class“-Datei, die auf der JVM ausgeführt wird.
  • (3) MQL5
  • MQL5 ist eine fortschrittliche objektorientierte Programmiersprache, die erweiterte Datenanalyse- und maschinelle Lernfunktionen bietet. Es basiert auf der weit verbreiteten und bekannten Programmiersprache C++ und ist für seine Geschwindigkeit und Vielseitigkeit bekannt.
  • MQL5 ist keine alltägliche ML-Sprache wie Python, Julia oder Scala. Es wurde speziell für Finanzmärkte zur Überwachung von Finanzinstrumenten entwickelt. Im Kern ähnelt die Sprache anderen Sprachen, weist jedoch einzigartige Merkmale auf. MQL5 unterstützt Ganzzahlen, Boolesche Werte, Literale, Zeichenfolgen, Datumsangaben, Uhrzeiten und Aufzählungen. Es definiert sowohl Strukturen als auch Klassen als komplexe Datentypen.
  • Die MQL5-Sprachdokumentation listet Funktionen, Operationen, reservierte Wörter usw. auf. Darüber hinaus werden Datentypen wie Ganzzahl, Boolescher Wert, Literal, Zeichenfolge, Datum und Uhrzeit bereitgestellt. Es verfügt über komplexe Strukturen und Klassen. Darüber hinaus enthält die Dokumentation Standardbibliotheksklassendefinitionen für Handelsstrategien, Bedienfelder, benutzerdefinierte visuelle Effekte, Dateizugriff usw.

    Darüber hinaus verfügt MQL5 über mehr als 1.500 Quellcode-Bibliotheken für die Entwicklung neuer Anwendungen. Sie können die ALGLIB-Bibliothek verwenden, die eine große Anzahl numerischer Analysefunktionen enthält. Ebenso gibt es die TimeSeries-Bibliothek zur Verarbeitung von Zeitreihen und die Fuzzy-Bibliothek zur Entwicklung von Fuzzy-Modellen sowie verschiedene andere Bibliotheken.

    MQL5 ist eine leistungsstarke Programmiersprache, die Ihnen beim Aufbau von Echtzeitsystemen helfen und visuelle Entscheidungshilfen bieten kann. MQL5 unterstützt Aufzählungen, Strukturen, Klassen und Ereignisse. Durch die Erhöhung der Anzahl der wichtigsten eingebetteten Funktionen können MQL5-Programme mit DLLs kommunizieren.

    MQL5 hat eine ähnliche Syntax wie C++, wodurch es einfach ist, in verschiedenen Programmiersprachen geschriebene Programme in MQL5-Programme zu konvertieren. Daher können Sie beim Einsatz von Datenanalyse, künstlicher Intelligenz oder Finanztools als Handelsroboter die gleiche Effizienz wie mit C++ erreichen.

    Hauptfunktionen von MQL5

    Einige der Kernfunktionen von MQL5 ermöglichen effiziente datenwissenschaftliche Berechnungen:

      # 🎜🎜#MQL5 basiert auf C++. Dadurch ist es so schnell wie C++ und schneller als Python;
    • Vordefinierte Standardkonstanten und Aufzählungen. Die Servicearchitektur speichert Informationen;
    • Farbschemata ändern, benutzerdefinierte Symbole hinzufügen und Preisdiagramme aus MQL5-Programmen exportieren;
    • 12 neue Zeichenstile, außerdem 512 Puffer als direkte Indexwertberechnung von der Vergangenheit in die Zukunft; 🎜🎜#4.
    • Welche Python ML-Alternative sollten Sie wählen?​
    • Eine Programmiersprache ist wie das Fahren eines Rennwagens, ganz zu schweigen von einem Fahrer. Ebenso sind Sie als Datenwissenschaftler der Fahrer dieser einzigartigen Sportwagen.
    • Jeder Datenwissenschaftler oder Entwickler hat seine eigenen Anforderungen und Spezifikationen für eine bestimmte Technologie. Die beste Wahl der Technologie hängt vom Betrachtungswinkel und der Funktionalität ab, die Sie benötigen. Daher ist es schwierig, die endgültige Entscheidung zu treffen.
    • Wenn Sie Multiprozess-Computing implementieren möchten und eine sehr hohe Rechengeschwindigkeit benötigen, können Sie sich für Julia entscheiden. Es ist das schnellste der drei. Wenn Sie hingegen ein großes Projekt durchführen, sollte Scala die bessere Wahl sein, da es seine Aufgabe erfüllt. Wenn Sie sich für Finanzinstrumente interessieren, ist MQL5 die beste Wahl.
    • Ebenso hat jede Programmiersprache ihre eigenen Eigenschaften und Fachgebiete. Wählen Sie daher am besten eine Sprache, die Ihren Anforderungen und Spezifikationen entspricht.

    5.Zusammenfassung

    Maschinelles Lernen ist ein kontinuierlicher und sich weiterentwickelnder Prozess. Im Laufe der Zeit entstand es mit der Sprache Standardized ML (SML) und wurde in Python populär. Heutzutage gibt es vielfältige Entwicklungen bei maschinellen Lernsprachen mit unterschiedlichen Anforderungen.

    Kurz gesagt, Python ist eine ausgezeichnete Sprache für maschinelles Lernen. Aber Python ist keine datenwissenschaftsspezifische Sprache, und es gibt modernere Programmiersprachen, die bestimmte Aufgaben effizienter ausführen können.

    Daher gewinnen aufstrebende Programmiersprachen Marktanteile und wachsen im Bereich des maschinellen Lernens. Hoffentlich werden auch sie in den nächsten Jahren häufiger vorkommen.

    Originallink: https://hackernoon.com/not-only-python-problems-errors-and-alternatives

    Übersetzer-Einführung#🎜🎜 #

    Liu Tao, 51CTO-Community-Redakteur, ist für die Online-Inspektion und Kontrolle des Systems eines großen Zentralunternehmens verantwortlich. Seine Hauptaufgaben sind die strenge Überprüfung der verpassten Scans, Penetrationstests und Basisinspektionen und andere Inspektionsarbeiten für die Online-Akzeptanz des Systems. Er verfügt über langjährige Erfahrung im Netzwerksicherheitsmanagement, langjährige Erfahrung in der PHP- und Webentwicklung und -verteidigung, Erfahrung in der Linux-Nutzung und -Verwaltung sowie umfangreiche Erfahrung in der Codeprüfung. Netzwerksicherheitstests und Threat Mining. Kompetent in SQL-Auditing, automatisierter SQLMAP-Erkennung, XSS-Auditing, Metasploit-Auditing, CSRF-Auditing, Webshell-Auditing, Maltego-Auditing und anderen Technologien unter Kali.

Das obige ist der detaillierte Inhalt vonWarum die Eile, einen Ersatz für Python zu finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen