Python-Speicher, grundlegendes Lernen, Datenanalyse

1. Erinnerung

        In Python ist alles ein Objekt. Python ist seit seiner Konzeption eine objektorientierte Sprache und hat das wichtige Konzept, dass alles ein Objekt ist.

        Obwohl Java ebenfalls eine objektorientierte Programmiersprache ist, ist ihr Stammbaum nicht so rein wie der von Python. Beispielsweise muss int, einer der acht grundlegenden Datentypen in Java, bei der Persistenz in ein Integer-Klassenobjekt gepackt werden . Aber in Python ist alles ein Objekt. Zahlen, Zeichenfolgen, Tupel, Listen, Wörterbücher, Funktionen, Methoden, Klassen, Module usw. sind alles Objekte, einschließlich Ihres Codes.

Konzept des Objekts

        Verschiedene Programmiersprachen definieren „Objekt“ auf unterschiedliche Weise. In einigen Sprachen bedeutet dies, dass alle Objekte Eigenschaften und Methoden haben müssen; in anderen bedeutet es, dass alle Objekte in Unterklassen unterteilt werden können.

        In Python ist die Definition locker, einige Objekte haben weder Attribute noch Methoden und nicht alle Objekte sind unterklassierbar. Aber Pythons „Alles ist ein Objekt“ kann wahrnehmungsmäßig so interpretiert werden: Alles in Python kann einer Variablen zugewiesen oder als Parameter an eine Funktion übergeben werden.

Alle Objekte in Python haben drei Attribute: (id(), type(), value)

Identität: Jedes Objekt verfügt über eine eindeutige Identität, um sich selbst zu identifizieren. Die Identität jedes Objekts kann mithilfe der integrierten Funktion id() ermittelt werden. Sie können sich einfach vorstellen, dass dieser Wert die Speicheradresse des Objekts ist.

Typ: Der Typ eines Objekts bestimmt, welche Art von Wert das Objekt enthalten kann, welche Eigenschaften und Methoden es hat, welche Operationen es ausführen kann und welche Regeln es befolgt. Sie können die integrierte Funktion type() verwenden, um den Typ eines Objekts anzuzeigen.

Wert: die vom Objekt dargestellten Daten

Beim Anlegen aller Objekte werden „Identität“, „Typ“ und „Wert“ zugewiesen. Wenn das Objekt Aktualisierungsvorgänge unterstützt, ist sein Wert veränderbar, andernfalls ist er schreibgeschützt (Zahlen, Zeichenfolgen, Tupel usw. sind unveränderlich). Diese drei Eigenschaften bestehen, solange das Objekt existiert.

        Technisch gesehen verfügt jedes Objekt über zwei Standard-Header-Informationen, eine Typkennung zur Identifizierung des Typs und einen Referenzzähler zur Bestimmung, ob das Objekt recycelt werden muss.

In C, C++ oder Java wird der Wert im Speicher gespeichert und die Variable zeigt auf diesen Speicherort. ( Heap-Speicher, Stapelspeicher )

In der Sprache C und Python werden Variablen in der folgenden Form gespeichert:

        Wenn Python Daten speichert, muss es eine bestimmte Menge Speicher verbrauchen, um datenbezogene Informationen zu speichern. Und diese Informationen sind in der C-Sprache geschrieben. Wenn wir den Wert der Variablen ändern, entspricht dies der Neuerstellung einer Variablen und führt automatisch den zugrunde liegenden Code von C aus, um alle Informationen der Daten und diese zugrunde liegenden Codes zu aktualisieren sind sehr kompliziert, wir müssen es nicht schreiben, aber es wurde zu Beginn des Python-Designs geschrieben, wir müssen nur die Operation der Variablenzuweisung ausführen und es wird in Ordnung sein. Dies ist auch einer der nützlichen Punkte von Python.

        Wenn Sie also eine Variable erstellen (z. B. a = 200), wird im Speicher ein neues PyObject erstellt, dessen Ref-Anzahl auf 1 gesetzt ist und auf das die Variable „a“ zeigt.

PyObjects im Speicher:

  • Typ: Ganzzahl, String, Float usw.
  • Referenzanzahl: Die Anzahl der Referenzen, die an die Referenzanzahl des Objekts gebunden sind
  • Wert: Wert/Daten/Informationen

Aber was ist ein Ref-Count?

Nehmen wir ein Beispiel, um es zu verstehen. Wir haben eine Variable „a“ vom Typ Integer mit dem Wert 200. Nehmen wir an, ich benötige eine weitere Variable namens „b“ vom Typ Integer mit einem Wert von 200. Sie haben zwei solche Variablen erstellt

Sie haben also zwei Variablen wie diese erstellt

a = 200 b = 200

Nun vermuten Sie wahrscheinlich, dass es für die Variablen „a“ und „b“ zwei Objekte im Speicher geben muss. aber es ist nicht die Wahrheit. „a“ und „b“ zeigen auf dasselbe Objekt.

Weisen Sie der Variablen ein neues Objekt zu

Beim Zuweisen eines neuen Objekts zu einer vorhandenen Variablen. Der Referenzzähler des vorherigen Objekts wird um 1 dekrementiert.

>>> a=1
>>> id(a)
94147440556736
>>> a=2
>>> id(a)
94147440556768
>>>

Nun zurück zur vorherigen Frage: Was passiert, wenn ein Objekt einen Referenzzähler von 0 hat? Bleibt es im Gedächtnis?

Sobald der Referenzzähler eines Objekts 0 wird, wird es vom Garbage Collector aus dem Speicher entfernt.

Objekte sind gleich

Der ==-Operator wird verwendet, um zu testen, ob die Werte zweier referenzierter Objekte gleich sind,
und um zu vergleichen, ob die beiden referenzierten Objekte dasselbe Objekt sind

Wenn das Operationsobjekt eine kleinere Zahl oder eine kürzere Zeichenfolge ist, ist es anders:

Dies wird durch den Caching-Mechanismus von Python verursacht. Kleine Zahlen und Zeichenfolgen werden zwischengespeichert und wiederverwendet, sodass a und b auf dasselbe Objekt verweisen

-------------------------------------------------- -------------------------------------------------- --------------------------

2. Grundlegend

Anwendung:

Python-Listen und Numpy-Arrays

Unterschied: (188 Nachrichten) Unterschied zwischen Python-Liste und Numpy-Array_Unterschied zwischen Numpy-Array und list_herr_whfs Blog-CSDN-Blog

1 Beide können zur Verarbeitung mehrdimensionaler Arrays verwendet werden.

        Das ndarray-Objekt in Numpy wird zur Verarbeitung mehrdimensionaler Arrays verwendet und fungiert als schneller und flexibler Container für große Datenmengen.

        Python-Listen können eindimensionale Arrays speichern, und mehrdimensionale Arrays können durch Verschachteln von Listen realisiert werden.

2 Speichereffizienz und Eingabe- und Ausgabeleistung sind unterschiedlich.

        Numpy wurde speziell für den Betrieb und Betrieb von Arrays entwickelt. Die Speichereffizienz sowie die Ein- und Ausgabeleistung sind viel besser als bei den verschachtelten Listen in Python. Je größer das Array, desto offensichtlicher sind die Vorteile von Numpy.

3-Element-Datentyp.

        Im Allgemeinen müssen alle Elemente in einem Numpy-Array vom gleichen Typ sein.

        Während der Elementtyp in einer Python-Liste beliebig ist,

        Im Hinblick auf die allgemeine Leistung sind Numpy-Arrays also nicht so gut wie Python-Listen.

        Beim wissenschaftlichen Rechnen können jedoch viele Schleifenanweisungen gespeichert werden, und die Verwendung des Codes ist viel einfacher als bei der Python-Liste.

1. Python-Liste

2. Numpy-Array

3. Objekt

        Klasse (Klasse: definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind

                    

                Klassenvariablen: sind bei allen instanziierten Objekten gleich. Klassenvariablen werden innerhalb der Klasse und außerhalb des Funktionskörpers definiert. Klassenvariablen werden im Allgemeinen nicht als Instanzvariablen verwendet. Die instanziierten Objekte aller Klassen teilen sich gleichzeitig Klassenvariablen, das heißt, Klassenvariablen existieren als gemeinsame Ressourcen in allen instanziierten Objekten

                Lokale Variablen: In der Methode definierte Variablen gelten nur für die Klasse der aktuellen Instanz.

                Instanzvariablen: im Klassenkörper, in allen Funktionen: Variablen, die in der Form „selbst. Variablenname“ definiert sind.

                Klassenmethode: Eine in einer Klasse definierte Funktion.

                )

        Klassenmethode, Klassenvariable : Es gibt zwei Aufrufmethoden, die entweder direkt den Klassennamen oder das instanziierte Objekt der Klasse verwenden. Der Klassenname kann nicht nur die Klassenvariable aufrufen, sondern auch ihren Wert ändern. Da die Klassenvariable von allen instanziierten Objekten gemeinsam genutzt wird, wirkt sich die Änderung des Werts der Klassenvariablen über den Klassennamen auf alle instanziierten Objekte aus. Das Ändern von Klassenvariablen nach Klassennamen wirkt sich auf alle instanziierten Objekte aus. ( entspricht der statischen Variablen static von Python )

        Es ist erwähnenswert, dass Sie zusätzlich zum Zugriff auf Klassenvariablen über Klassennamen auch Klassenvariablen dynamisch zu Klassen und Objekten hinzufügen können. Fügen Sie beispielsweise auf Basis der CLanguage-Klasse den folgenden Code hinzu:

clang = CLanguage() 
CLanguage.catalog = 13 
print(clang.catalog)

        Instanzvariable: Bezieht sich auf eine Variable, die in der Form „selbst. Variablenname“ innerhalb einer beliebigen Klassenmethode definiert ist. Ihr Merkmal besteht darin, dass sie nur auf das Objekt wirkt, das die Methode aufruft.

        Auf Klassenvariablen kann über das (Klassen-)Objekt zugegriffen werden, der Wert der Klassenvariablen kann jedoch nicht geändert werden. Das Ändern des Werts einer Klassenvariablen über ein Klassenobjekt bedeutet nicht, einer Klassenvariablen einen Wert zuzuweisen, sondern eine neue Instanzvariable zu definieren . Der Klassenvariablenwert kann nur über den Klassennamen geändert werden

        Lokale Variablen: können nur in der Funktion verwendet werden, in der die Funktion ausgeführt wird. Nach Ausführung der Funktion werden auch die lokalen Variablen zerstört

        

        Umschreiben der Methode: Wenn die von der übergeordneten Klasse geerbte Methode die Anforderungen der Unterklasse nicht erfüllen kann, kann sie neu geschrieben werden. Dieser Vorgang wird als Methodenüberschreibung oder Methodenumschreiben bezeichnet.

        

        Vererbung: Das heißt, eine abgeleitete Klasse (abgeleitete Klasse) erbt die Felder und Methoden der Basisklasse (Basisklasse). Durch Vererbung kann ein Objekt einer abgeleiteten Klasse auch als Objekt einer Basisklasse behandelt werden. Es gibt beispielsweise ein solches Design: Ein Objekt vom Typ Hund wird von der Klasse „Animal“ abgeleitet, die die „ist-ein“-Beziehung simuliert (z. B. „Hund ist ein Tier“).

  • Die erste Methode, die Methode __init__(), ist eine spezielle Methode namens Konstruktor oder Initialisierungsmethode einer Klasse, die aufgerufen wird, wenn eine Instanz der Klasse erstellt wird

  • Klassenmethoden haben nur einen besonderen Unterschied zu gewöhnlichen Funktionen: Sie müssen einen zusätzlichen ersten Parameternamen haben , der laut Konvention self heißt

  • self stellt die Instanz der Klasse dar und stellt die Adresse des aktuellen Objekts dar, während self.__class__ auf die Klasse verweist

          Einer der Hauptvorteile der objektorientierten  Programmierung ist die Wiederverwendung von Code, und eine Möglichkeit, diese Wiederverwendung zu erreichen, ist der Vererbungsmechanismus.


Datenanalyse:

Was ist Datenanalyse? Bezieht sich auf die Sammlung großer Datenmengen und die Verwendung geeigneter Analysemethoden für die Analyse sowie auf die Verwendung effizienter Analysetools zur Klassifizierung und Zusammenfassung dieser Daten. Der Prozess des Extrahierens der wertvollsten Informationen, des Zusammenfassens und Bildens effektiver Schlussfolgerungen sowie des Ausschöpfens des maximalen Datenwerts.

Werkzeuge und Fähigkeiten:

Excel: Keine wichtige Fähigkeit, aber jeder weiß sie.

SQL: sehr wichtig

spss: Professionelle statistische Analysesoftware (nicht jeder verwendet sie), keine Kenntnisse erforderlich

Python: Angesichts einer großen Menge komplexer Daten verwenden Sie SQL für automatisierte Vorgänge

Geschäftsdatenanalyse:

 

 Python-Datenanalyse:

Excel:

1. Als Mitglied der Office-Software wurde sie im Office gebündelt und zusammen verkauft

2. WPS Office und Microsoft Office sind derzeit die beiden beliebtesten Office-Software in China. Microsoft Office ist eine von Microsoft entwickelte Office-Suite. WPSOffice ist eine von Kingsoft Co., Ltd. entwickelte Office-Suite.

3. WPS enthält viele praktische Kits. Beide sind kostenlos nutzbar. Einschließlich der gängigsten Word-, Excel- und PPT-Dateien. Bietet auch PDF-Lesung. Dokumentationskorrekturen. Powerword, Notizen, Mail und andere Pakete. Aber Ass (Datenbank) wird nicht unterstützt. kleines Volumen. „Cloud Office“. Schnell öffnen. Lässt sich schnell installieren. Die meisten kompatiblen Plattformen! Unterstützt Linux-Plattformen, die Office nicht unterstützt. Die berufliche Relevanz ist nicht stark genug. Schlechte Kompatibilität. Da es kostenlos ist, gibt es viele Anzeigen (Sie können das Problem lösen, indem Sie Geld verlangen). Das Öffnen von docx, xlsx und pptx friert ein. Wenn die Datei zum Öffnen an das Büro gesendet wird, besteht das Problem der Dokumentendrift.

4. Office enthält viele professionelle Suiten. Für die Nutzung wird eine Gebühr erhoben. Auch der Preis ist extrem hoch. Einschließlich der gängigsten drei Suiten (am häufigsten Word, Excel, PPT). Die neueste Version von Word unterstützt das Öffnen von PDFs und unterstützt auch das Schreiben. Am meisten wird jedoch Adobe Reader Pro für die tägliche Nutzung von PDF empfohlen. Das ist kein Thema. Das nächste Mal werde ich darüber sprechen, warum PDF-Editoren dieses Programm hauptsächlich empfehlen. Die Office-Desktop-Version umfasst außerdem Access (Datenbank), Onenote (Notizbuch), Outlook (Postfach), Publisher (Seitenlayout), Skype (Sprachanruf), OneDrive (Cloud-Speicher) und andere professionelle unterstützende Software. Starke berufliche Relevanz, gute Kompatibilität, bearbeitbares PDF, reibungslose und unterbrechungsfreie PPT. Es kann sogar Bilder ausschneiden und Excel kann eine Verbindung zu Servern und Daten herstellen.

5. Systemkompatibilität: WPS unterstützt eine echte Vollplattform und ist mit dem großartigen Linux (Open-Source-System) kompatibel. Office unterstützt nur normales Windows, Mac, Android und iOS. Es kann aber auch von einer Vollplattform gesprochen werden. Allerdings sind die Funktionen von Office auf dem Mac stark kastriert. Einerseits möchte Apple nicht, dass Microsoft in seinem Haus zu gut abschneidet, und andererseits möchte Microsoft nicht, dass es in den Häusern anderer Leute zu gut abschneidet . Dies hat zur Folge, dass Kunden auf beiden Seiten nicht besonders gut darin sind, den Mac für die Arbeit mit Office zu nutzen. Die Windows-Plattform fördert hauptsächlich Office.

Ich denke du magst

Origin blog.csdn.net/zr_xs/article/details/131097729
Empfohlen
Rangfolge