It doesn't appear to be 'bitness' (32 vs. 64) of the processor, see comments on this post, in particular:
Good answer. As I mentioned in my comments above, I'm able to duplicate @suzep136's issue on a Raspberry Pi 3, which uses a 64-bit ARM processor. Any idea why the overflow issue would occur on a 64-bit architecture? The only thing I can think of is that lapack/blas were compiled for a 32-bit core; I think I installed numpy through apt-get. – nrlakin
Nor is it the size of int in C, for example on my machine:
>>> import numpy, ctypes
>>>
>>> ctypes.sizeof(ctypes.c_int)
4
>>> numpy.array([1]).dtype
dtype('int64')
So, what does it depend on?
Edit: There goes another candidate, thanks ev-br:
LAPACK uses 32-bit integers on all architectures – ev-br
Edit: A partial answer is here. Thanks Goyo. I've copied this and made it CW so you can add the finer points such as what happens in PyPy or Jython. I'd also be interested in whether there are any deeper reasons for this choice.