Was bedeutet dtype=Objekt bedeuten, während Sie ein numpy-array?
Ich war das Experimentieren mit numpy-arrays und erzeugt ein numpy-array aus strings:
ar1 = np.array(['avinash', 'jay'])
Als ich gelesen habe, von Ihrer offiziellen guide, Operationen auf numpy-array weitergegeben werden zu den einzelnen Elementen. Also ich habe das:
ar1 * 2
Aber dann bekomme ich diesen Fehler:
TypeError Traceback (most recent call last)
<ipython-input-22-aaac6331c572> in <module>()
----> 1 ar1 * 2
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'int'
Aber wenn ich dtype=object
ar1 = np.array(['avinash', 'jay'], dtype=object)
beim erstellen des array-ich bin in der Lage, alle Vorgänge.
Kann mir jemand sagen, warum dies passiert ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
NumPy-arrays sind, werden als zusammenhängende Blöcke des Speichers. Sie haben in der Regel einen einzigen Datentyp (z.B. Integer, floats oder Zeichenfolgen fester Länge) und dann die bits im Speicher interpretiert werden, wie Werte mit dem Datentyp.
Erstellen ein array mit
dtype=object
ist anders. Die Erinnerung genommen, indem Sie das array nun gefüllt ist mit Zeiger, um Python-Objekte, die gespeichert werden anderswo im Speicher (ähnlich wie ein Pythonlist
ist wirklich nur eine Liste von Zeigern auf Objekte, nicht die Objekte selbst).Arithmetische Operatoren wie
*
funktioniert nicht mit arrays wiear1
die einestring_
Datentyp (gibt es spezielle Funktionen statt - siehe unten). NumPy ist nur die Behandlung der bits im Speicher als Zeichen, und die*
Betreiber hat keinen Sinn hier. Aber die Liniefunktioniert denn jetzt das array ist ein array von (Zeigern auf) Python-strings. Die
*
Betreiber ist klar definiert und für diese Python string-Objekte. Neue Python-strings sind im Speicher erstellt und ein neuesobject
array mit Referenzen auf die neuen strings zurückgegeben.Wenn Sie ein array mit
string_
oderunicode_
"dtype" und wiederholen Sie jede Zeichenfolge, die Sie verwenden könnennp.char.multiply
:NumPy hat viele andere vektorisiert von string-Methoden zu.