Recently I was playing around with multi-dimensional data structures in Python.

Some interesting observations:

- Multi-dimensional lists and multi-dimensional arrays are fundamentally handled differently.
- Slicing of multi-dimensional arrays (numpy) need to be carefully considered in regards to shallow copy etc

Some references below for further examination:

**References:**

- http://ilan.schnell-web.net/prog/slicing/
- https://docs.python.org/2/library/copy.html
- http://stackoverflow.com/questions/509211/explain-pythons-slice-notation
- http://cs231n.github.io/python-numpy-tutorial/
- http://www.physics.nyu.edu/pine/pymanual/html/chap3/chap3_arrays.html
- http://www.astro.ufl.edu/~warner/prog/python.html