Warum erhalte ich diese Fehlermeldung bei der Verwendung von np.dot(a,b.T)
:
TypeError: Cannot cast array data from dtype('float64')
to dtype('S32') according to the rule 'safe'
a und b sind vom Typ 'numpy.ndarray'. Meine numpy-Version ist 1.11.0.
Nehmen Sie einfach die Eingabe von BrenBarn und Warren Weckesser, um einen Code-Ausschnitt bereitzustellen, der ausgeführt werden soll (indem Sie Ihre Zeichenfolgen in Float konvertieren):
a = map(lambda x: float(x),a)
b = map(lambda x: float(x),b)
np.dot(a,b.T)
oder einfacher als von @JLT vorgeschlagen
a = map(float,a)
b = map(float,b)
np.dot(a,b.T)
Aber wie Warren Weckesser schon sagte, sollten Sie die Typen des Arrays überprüfen, höchstwahrscheinlich enthält einer bereits Floats.
Versuchen Sie, das gesamte numpy-Array in float umzuwandeln. __ Beispiel:
train = train.astype(float)
train_target = train_target.astype(float)