It would be a view if the underlying data representation supports it.

For example, Arrow’s `to_numpy`

returns a view/is zero-copy for numeric data without nulls:

```
In [6]: import pyarrow as pa
In [7]: arr = pa.array([1, 2, 3, 4], type='float32')
# This is a view / zero-copy
In [9]: arr.to_numpy()
Out[9]: array([1., 2., 3., 4.], dtype=float32)
In [10]: arr = pa.array([1, 2, None, 4], type='float32')
In [11]: arr.to_numpy()
ArrowInvalid: Needed to copy 1 chunks with 1 nulls, but zero_copy_only was True
# This copies
In [12]: arr.to_numpy(zero_copy_only=False)
Out[12]: array([ 1., 2., nan, 4.], dtype=float32)
```