Vererbung zwischen numerischen Python- und NumPy-Typen

Ich habe versucht herauszufinden, ob der numerische Typ NumPy den entsprechenden numerischen Typ Python erbt.

import builtins
import numpy as np

np_numt = [
    np.bool_,
    np.int_,
    np.intc,
    np.intp,
    np.int8,
    np.int16,
    np.int32,
    np.int64,
    np.uint8,
    np.uint16,
    np.uint32,
    np.uint64,
    np.float_,
    np.float16,
    np.float32,
    np.float64,
    np.complex_,
    np.complex64,
    np.complex128
]

py_numt = ["bool", "int", "float", "complex"]

for np_t in np_numt:
    py_t = next(tstr for tstr in py_numt if tstr in str(np_t))
    print(np_t, py_t, issubclass(np_t, getattr(builtins, py_t)))

Wenn ich diesen Code ausführe

<class 'numpy.bool_'> bool False
<class 'numpy.int32'> int False
<class 'numpy.int32'> int False
<class 'numpy.int64'> int False
<class 'numpy.int8'> int False
<class 'numpy.int16'> int False
<class 'numpy.int32'> int False
<class 'numpy.int64'> int False
<class 'numpy.uint8'> int False
<class 'numpy.uint16'> int False
<class 'numpy.uint32'> int False
<class 'numpy.uint64'> int False
<class 'numpy.float64'> float True
<class 'numpy.float16'> float False
<class 'numpy.float32'> float False
<class 'numpy.float64'> float True
<class 'numpy.complex128'> complex True
<class 'numpy.complex64'> complex False
<class 'numpy.complex128'> complex True

Und nur numpy.float64 (und sein Alias numpy.float_) und numpy.complex128 (und sein Alias numpy.complex_) entsprechen den entsprechenden Python-Typen float bzw.`. Es scheint ein Untertyp des Komplexes zu sein.

numpy.float64 ist in der Standardbibliothek json jsonable, aber beachten Sie, dass der zurückgegebene Wert vom Typ Python ist. Der folgende Ausdruck ist beispielsweise vom Typ "float" von Python.

import json
type(json.loads(json.dumps(np.float64(64))))

Andere numerische NumPy-Typen führen zu einem Fehler mit dem Standardwert "json".

Recommended Posts

Vererbung zwischen numerischen Python- und NumPy-Typen
Numerischer Python-Typ
Python- und Numpy-Tipps
[Python] Woche 1-3: Nummerntyp und Operation
Python # Vererbung (Vererbung)
Python-Grundkurs (4 numerische Typen / Zeichenfolgen)
Mein Numpy (Python)
Installieren Sie Python3.5 + NumPy + SciPy und führen Sie es unter Windows 10 aus
Beziehung zwischen Firestore- und Go-Datentypkonvertierung
Ich habe "Python Dictionary Type" und "Excel Function" verglichen.
Informationen zur Python-Vererbung
Probleme mit pseudo-privaten Python-Variablen und Klassenvererbung
# Python-Grundlagen (#Numpy 2/2)
Python2-Zeichenfolgentyp
Python # String-Typ
Python #Numpy Basics
[Python] Klassentyp und Verwendung des datetime-Moduls
[Python] Numpy Memo
Versuchen Sie, die Beziehung zwischen Operatoren und speziellen Methoden aufzurufen, indem Sie eine numerische Methode aufrufen
Lernen von Beziehungsdaten mit Numpy und NetworkX (Spektralclustering)
[Tipps] Differenzberechnung erster Ordnung und inverse Konvertierung [Python / Numpy]
[Python] Typfehler: Zusammenfassung der Ursachen und Abhilfemaßnahmen für 'Kein Typ'
Es ist nicht einfach, Python zu schreiben, es ist einfach, numpy und scipy zu schreiben
Python # So überprüfen Sie Typ und Typ für Super-Anfänger
Vergleiche "log and infininity" mit Gauche (0.9.4) und Python (3.5.1)
[Python] Komprimieren und dekomprimieren
[Python] Pip und Wheel
Python-Pakete und -Module
Vue-Cli- und Python-Integration
Ruby, Python und Map
[Python] Klassenvererbung, überschreiben
[Python] Suche (NumPy) ABC165C
Berechnung des Python-Numpy-Arrays
Python-Eingabe und Ausgabe
Python und Ruby teilen sich
Python # Überprüfen Sie die Typidentität
Python asyncio und ContextVar
Python Basic - Pandas, Numpy -
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
Lassen Sie uns ein PRML-Diagramm mit Python, Numpy und matplotlib erstellen.