I think they're computationally equivalent, but two other options:

```python
>>> '\t'.join(np.asarray(a, dtype=np.str))
'1.0\t2.3\t4.6'
>>> '\t'.join(map(str, a))
'1.0\t2.3\t4.6'
```

The first one may be better as it pushes more of the work into native numpy constructs which should reduce flipping between numpy and python