With a dtype non-object, most of the npy file format consists of dumping raw bytes of array data. It will be either 4 or 8 bytes per element here, depending on whether your NumPy will default to 4 or 8 bytes. From the file size, it looks like 4 bytes per element.
dtype npy . , , , pickle K pickle, BININT1, "" pickletools:
I(name='BININT1',
code='K',
arg=uint1,
stack_before=[],
stack_after=[pyint],
proto=1,
doc="""Push a one-byte unsigned integer.
This is a space optimization for pickling very small non-negative ints,
in range(256).
"""),
, K .
, , dtype numpy.int8 numpy.uint8, 1 .