Lots of cython code use `import numpy as np; cimport numpy as np` but IMO that obscures the difference between what happens at runtime or not. Instead, I `cimport numpy as cnp` as they're two different statements:
- `import` is a Python import, so you get access to the numpy module and its functionality like `np.random.multinomial`.
- `cimport` is kind of an include, to give access to C types, C functions...