Numpy.dot TypeError: Cannot cast array data from dtype('float64') to dtype('S32') according to the rule 'safe'

前端 未结 2 1754
北海茫月
北海茫月 2020-12-20 10:45

Why am I getting this error when using np.dot(a,b.T):

TypeError: Cannot cast array data from dtype(\'float64\') 
               to dtype(\'S32\'         


        
相关标签:
2条回答
  • 2020-12-20 11:23

    Just taking the input from BrenBarn and Warren Weckesser to provide a code snippet which should run (by converting your strings to float):

    a = map(lambda x: float(x),a)
    b = map(lambda x: float(x),b)
    np.dot(a,b.T)
    

    or simpler as suggested by @JLT

    a = map(float,a)
    b = map(float,b)
    np.dot(a,b.T)
    

    But as Warren Weckesser already said, you should check the types of the array, most likely one already contains floats.

    0 讨论(0)
  • 2020-12-20 11:23

    Try converting whole numpy array into float Example:

    train = train.astype(float)
    train_target = train_target.astype(float)
    
    0 讨论(0)
提交回复
热议问题