add note about memmap

This commit is contained in:
Tiziano Zito 2024-08-13 13:44:19 +02:00
parent 736c9abc1f
commit b17c48ab51

26
numpy/README.md Normal file
View file

@ -0,0 +1,26 @@
# Anatomy of a numpy array
## one dimension, float64
![1d array](ndarray-memory-layout-1d.svg)
## two dimensions, square, float64
![2d array - square](ndarray-memory-layout-2d-square.svg)
## two dimensions, rectangular, int32
![2d array - rectangular](ndarray-memory-layout-2d-rectangular.svg)
## what about Python lists?
![memory layout of a Python list](python-list-memory-layout.svg)
## interesting attributes of numpy arrays
- `x.data`, `x.data.hex()`, `x.data.format`, `x.tobytes()`
- `x.flags`:
- `OWNDATA`
- `C_CONTIGUOUS`
- `F_CONTIGUOUS`
- more [flags](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flags.html)
## If your arrays are bigger than RAM
- `numpy.memmap`: an array-like object that maps memory to an array stored on disk, used for accessing small segments of large files on disk, without reading the entire file into memory. Use with caution!
- `HDF5`: hierarchical data format, with aribitrary metadata and multilanguage support with `h5py` with an array-lie interface
- other projects, for example `xarray` and `zarr`