I have a raw `np.array()` on which I would explicitly indicate the type of the column. 

The `data` array has the following form:

```
data = [
    [name1, float1, float2, float3]
    # ... 
    [nameX, floatX, floatX, floatX]
]

```

Now, to explicitly specify the column type, I do the following: 

```
data = np.array(data, dtype=[('name', str), ('amount0', float), ('amount1', float), ('amount2', float)])

```

Quite straight forward. 

However, for some reason I do not understand I got the following error: 

> 
> ValueError: could not convert string to float: 'john\_smith'
> 
> 
> 

And `'john_smith'` is a value from the first column of data (`data[:,0]`), since I defined this to be a string, I don't even understand why it tries to convert it to a float. 

Also: `'john_smith'` is neither the first or the last element of the data array. 

So, what is wrong here?

**Working example**:

```
import numpy as np

row1 = ['julien', '6270', '17', '0.2703992365198028']
row2 = ['john_smith', '2983', '10', '0.3341129301703976']
row3 = ['helo', '19', '0', '0.0']

data = []
data.append(row1)
data.append(row2)
data.append(row3)
data = np.array(data)

data = np.array(data, dtype=[('name', str), ('amount0', float), ('amount1', float), ('amount2', float)])

```