warum numpy gemischte Datentypen zulässt, aber die Dokumentation sagt, dass dies nicht möglich ist?

Jahanzaib Niazi

Ich habe eine allgemeine Frage, aber niemand kann mir eine Antwort darauf geben, dass ich viel in offiziellen Python-Dokumenten und anderen Quellen wie Bootcamp und Datacamp gesucht habe.

Das Problem ist, dass ich überall gelesen habe, wo dieser Numpy keine heterogenen Datentypen unterstützt ( OFFICIAL DOCS )

Aber wenn ich den Code unten schreibe, funktioniert es gut. Also, wenn numpy heterogene Datentypen nicht unterstützt, warum erlaubt die Codierung dann?

import numpy as np

x = np.array(["hello", 3, 4, 5])

print(a)

Die obigen Anweisungen werden erfolgreich ausgeführt.

Serge Ballesta

Ein numpy-Array hat einen deklarierten Typ ( dtype). Alle Elemente im Array müssen diesem Typ entsprechen oder müssen darin erzwungen werden. Punkt.

Einige Typen sind einfach toleranter : Wenn Sie einen Gleitkommatyp verwenden, werden die meisten Integer-Werte (außer den größten) leicht gespeichert, während das Gegenteil falsch wäre. Oder Sie können sogar einen objectdtype verwenden, mit dem Sie jeden Python-Wert speichern können, einschließlich Listen oder Diktate.

arr = np.array((1, 2.5, 'foo'), dtype=object)
print(type(arr[0]), type(arr[1]), type(arr[2]))

gibt:

<class 'int'> <class 'float'> <class 'str'>

Der Nachteil ist, dass es hier keinen Sinn macht, ein numpy-Array zu verwenden, da Sie keine vektorisierte Operation darüber verwenden können ...


Nach dem großartigen Kommentar von @juanpa.arrivillaga werde ich versuchen, einen Schritt weiter zu gehen, um zu erklären, was in numpy. numpyspeichert normalerweise Rohdaten , damit sie direkt von C-Routinen verwendet werden können, was die Verarbeitung stark beschleunigt (was im Idiom als Vektorisierung bezeichnet wirdnumpy ). Das dtypeAttribut ist konstruktionsbedingt allen Elementen eines Ndarrays gemeinsam und, wenn auch oft, ein numerischer (C) Typ. Zum Beispiel speichert und verarbeitet ein numpy-Array auf einfache Weise ganze Zahlen fester Größe ( int32oder int64). In diesem Fall speichert jeder Slot im Array die Zahl als 4 (bzw. 8) Byte große Ganzzahl, während eine Python-Ganzzahl eine Zahl mit mehreren Genauigkeiten ist.

Was mit dem objectdtype passiert , ist, dass das Array tatsächlich Verweise auf jedes Python-Objekt enthält (stellen Sie sich das als Adresse vor).

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Django sagt, dass MySQL nicht zulässt, dass eindeutige CharFields eine maximale Länge> 255 haben, aber dies ist der Fall

Warum sagt Haskell, dass dies nicht eindeutig ist?

Warum Hibernate MassIndexer sagt, dass die Indizierung abgeschlossen ist, aber wirklich nicht abgeschlossen ist

wix Restart Manager fährt die Anwendung erfolgreich herunter, sagt jedoch, dass dies nicht möglich ist

Fehler 1105 - Warum sagt SQL, dass die PRIMARY-Dateigruppe voll ist, wenn dies nicht der Fall ist?

Warum kann ich numpy in meinen Python-Interpreter importieren, aber RHEL sagt, dass numpy nicht installiert ist?

Meine Variable ist definiert, aber Python sagt, dass dies nicht der Fall ist?

Der Compiler sagt, dass uuid.h nicht gefunden wurde, aber apt-get sagt, dass dies der Fall ist

Warum sagt mein UDP, dass es verbunden ist, obwohl dies nicht der Fall ist?

Warum sagt isnormal (), dass ein Wert normal ist, wenn dies nicht der Fall ist?

Go: Eigenschaft existiert, aber Go-Compiler sagt, dass dies nicht der Fall ist?

HashMap enthält einen bestimmten Schlüssel, sagt mir aber, dass dies nicht der Fall ist

Warum sagt GCC, dass eine Variable nicht verwendet wird, wenn dies nicht der Fall ist?

Warum sagt Double.valueof javadoc, dass es Werte zwischenspeichert, wenn dies nicht der Fall ist?

Warum sagt EF, dass sich mein Modell geändert hat, wenn dies nicht der Fall ist?

tibbletime mit tq_transmute, das einen seltsamen Fehler erzeugt. Die Spalte existiert offensichtlich, sagt aber, dass dies nicht der Fall ist

Warum sagt SQL Server, dass dies falsch ist?

GCS sagt, dass die Datei bereits im Bucket vorhanden ist, dies jedoch nicht

Warum ist die Zuordnung zu "dies" in Java nicht zulässig?

Warum zeigt der Redux-Speicher meinen Status an, aber die Reaktionskomponente sagt, dass sie undefiniert ist?

Warum sagt die Vue-Dokumentation, dass Refs nicht reaktiv sind, wenn sie es tatsächlich sind?

Warum sagt Git, dass mein Hauptzweig "bereits auf dem neuesten Stand" ist, obwohl dies nicht der Fall ist?

Warum sagt mir meine Bewerbung, dass meine Zwischenablage leer ist, wenn dies eindeutig nicht der Fall ist?

Django-Rest-Framework, POST-Operation: Felder sind nicht leer, aber DRF sagt, dass dies erforderlich ist

Das CS50-Abflussprogramm funktioniert, aber check50 sagt, dass dies nicht der Fall ist

JUnit-Tests bestehen, aber PIT sagt, dass die Suite nicht grün ist

Arangoimp sagt, dass alles korrekt gelaufen ist, aber die Daten erscheinen nicht in der Datenbank

Meteor Ironrouter versucht Daten zu übergeben, sagt aber, dass die Sammlung nicht definiert ist

Warum sagt meine if-Anweisung, dass zwei Zeichenfolgen in einer Liste enthalten sind, wenn dies nicht der Fall ist?

TOP Liste

  1. 1

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  2. 2

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  3. 3

    TypeAhead.js zeigt keine Ausgangsschienen an?

  4. 4

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

  5. 5

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  6. 6

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  7. 7

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  8. 8

    Warum funktioniert Phantomjs nicht mit dieser Site?

  9. 9

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  10. 10

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  11. 11

    MongoDB eingebettetes Dokument unterscheiden und filtern

  12. 12

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  13. 13

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  14. 14

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  15. 15

    Aktualisieren des Werts im Json-Objekt in Python

  16. 16

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  17. 17

    Kivy: Machen Sie Scatter gleich groß wie das untergeordnete Etikett oder Bild

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    So vergleichen Sie Werte in verschiedenen Objekten jq

  20. 20

    Teilen Sie die Zeichenfolge durch (') und Leerzeichen, aber lassen Sie alle Leerzeichen zwischen zwei aufeinander folgenden (')

  21. 21

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

heißlabel

Archiv