How to convert

```
["1.1", "2.2", "3.2"]
```

to

```
[1.1, 2.2, 3.2]
```

in NumPy?

Skip to content
# How to convert an array of strings to an array of floats in numpy?

Each Answer to this Q is separated by one/two green lines.

How to convert

```
["1.1", "2.2", "3.2"]
```

to

```
[1.1, 2.2, 3.2]
```

in NumPy?

Well, if you’re reading the data in as a list, just do `np.array(map(float, list_of_strings))`

(or equivalently, use a list comprehension). (In Python 3, you’ll need to call `list`

on the `map`

return value if you use `map`

, since `map`

returns an iterator now.)

However, if it’s already a numpy array of strings, there’s a better way. Use `astype()`

.

```
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
```

Another option might be numpy.asarray:

```
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=float)
print(a, type(a), type(a[0]))
print(b, type(b), type(b[0]))
```

resulting in:

```
['1.1', '2.2', '3.2'] <class 'list'> <class 'str'>
[1.1 2.2 3.2] <class 'numpy.ndarray'> <class 'numpy.float64'>
```

If you have (or create) a single string, you can use **np.fromstring**:

```
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )
```

Note, `x = ','.join(x)`

transforms the x array to string `'1.1, 2.2, 3.2'`

. If you read a line from a txt file, each line will be already a string.

You can use this as well

```
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
```

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .