Difference between data types (int8 and float)

I think I understand what's going on. OP assumed that an array will somehow be constrained to a certain memory footprint. If the datatype is bigger, then it will take fewer elements to fill up that fixed space in memory. This isn't how things work however.

Not always: it depends upon the platform. I'm not 100% sure, but on an esp32, an int may well be 4 bytes.

This conclusion is not even coherent with your wrong assumptions. The ratio, if anything, should be 2000:500