np arrays get turned into native lists
{'login': 'ZhaofengWu', 'id': 11954789, 'node_id': 'MDQ6VXNlcjExOTU0Nzg5', 'avatar_url': 'https://avatars.githubusercontent.com/u/11954789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ZhaofengWu', 'html_url': 'https://github.com/ZhaofengWu', 'followers_url': 'https://api.github.com/users/ZhaofengWu/followers', 'following_url': 'https://api.github.com/users/ZhaofengWu/following{/other_user}', 'gists_url': 'https://api.github.com/users/ZhaofengWu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ZhaofengWu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ZhaofengWu/subscriptions', 'organizations_url': 'https://api.github.com/users/ZhaofengWu/orgs', 'repos_url': 'https://api.github.com/users/ZhaofengWu/repos', 'events_url': 'https://api.github.com/users/ZhaofengWu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ZhaofengWu/received_events', 'type': 'User', 'site_admin': False}
[{'id': 1935892857, 'node_id': 'MDU6TGFiZWwxOTM1ODkyODU3', 'url': 'https://api.github.com/repos/huggingface/datasets/labels/bug', 'name': 'bug', 'color': 'd73a4a', 'default': True, 'description': "Something isn't working"}]
[]
If you add the line `dataset2.set_format('np')` before calling `dataset2[0]['tmp']` it should return `np.ndarray`.
I believe internally it will not store it as a list, it is only returning a list when you index it.

```
In [1]: import datasets, numpy as np
In [2]: dataset = datasets.load_dataset("glue", "mrpc")["validation"]
In [3]: dataset2 = dataset.map(lambda x: {"tmp": np.array([0.5])}, batched=False)
In [4]: dataset2[0]["tmp"]
Out[4]: [0.5]

In [5]: dataset2.set_format('np')

In [6]: dataset2[0]["tmp"]
Out[6]: array([0.5])
``` I see, thanks! Any idea if the default numpy → list conversion might cause precision loss? I'm not super familiar with our datasets works internally, but I think your `np` array will be stored in a `pyarrow` format, and then you take a view of this as a python array. In which case, I think the precision should be preserved.
## Describe the bug
When attaching an `np.array` field, it seems that it automatically gets turned into a list (see below). Why is this happening? Could it lose precision? Is there a way to make sure this doesn't happen?

## Steps to reproduce the bug
```python
>>> import datasets, numpy as np
>>> dataset = datasets.load_dataset("glue", "mrpc")["validation"]
Reusing dataset glue (...)
100%|███████████████████████████████████████████████| 3/3 [00:00<00:00, 1360.61it/s]
>>> dataset2 = dataset.map(lambda x: {"tmp": np.array([0.5])}, batched=False)
100%|██████████████████████████████████████████| 408/408 [00:00<00:00, 10819.97ex/s]
>>> dataset2[0]["tmp"]
[0.5]
>>> type(dataset2[0]["tmp"])
<class 'list'>
```

## Expected results
`dataset2[0]["tmp"]` should be an `np.ndarray`.

## Actual results
It's a list.

## Environment info
<!-- You can run the command `datasets-cli env` and copy-and-paste its output below. -->
- `datasets` version: 2.3.2
- Platform: mac, though I'm pretty sure it happens on a linux machine too
- Python version: 3.9.7
- PyArrow version: 6.0.1

{'url': 'https://api.github.com/repos/huggingface/datasets/issues/4619/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}