Using stride tricks with NumPy
In this recipe, we will dig deeper into the internals of NumPy arrays, by generalizing the notion of row-major and column-major orders to multidimensional arrays. The general notion is that of strides, which describe how the items of a multidimensional array are organized within a one-dimensional data buffer. Strides are mostly an implementation detail, but they can also be used in specific situations to optimize some algorithms.
Getting ready
We suppose that NumPy has been imported and that the aid()
function has been defined (refer to the Understanding the internals of NumPy to avoid unnecessary array copying recipe).
>>> import numpy as np >>> def aid(x): # This function returns the memory # block address of an array. return x.__array_interface__['data'][0]
How to do it...
Strides are integer numbers describing the byte step in the contiguous block of memory for each dimension.
>>> x = np.zeros(10) x.strides...