Pourquoi cette erreur survient-elle lorsque j'utilise np.dot(a,b.T)
:
TypeError: Cannot cast array data from dtype('float64')
to dtype('S32') according to the rule 'safe'
a et b sont du type 'numpy.ndarray'. Ma version de Numpy est 1.11.0.
En prenant simplement les entrées de BrenBarn et Warren Weckesser pour fournir un extrait de code qui devrait être exécuté (en convertissant vos chaînes en float):
a = map(lambda x: float(x),a)
b = map(lambda x: float(x),b)
np.dot(a,b.T)
ou plus simple comme suggéré par @JLT
a = map(float,a)
b = map(float,b)
np.dot(a,b.T)
Mais comme Warren Weckesser l’a déjà dit, vous devriez vérifier les types du tableau, le plus probablement contient déjà des flottants.
Essayez de convertir tout un tableau numpy en float Exemple:
train = train.astype(float)
train_target = train_target.astype(float)