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

## Question:

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.

## Answers:

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.

Try converting whole numpy array into float

Example:

```
train = train.astype(float)
train_target = train_target.astype(float)
```