Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

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

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

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

a and b are of type numpy.ndarray. My NumPy version is 1.11.0.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...