Ответ 1
Это связано с проблемой NumPy 5917. A <
вместо <=
заставило np.can_cast(127, np.int8)
быть False, поэтому NumPy использовал слишком большой dtype для 127. OS- потому что C longs имеют разный размер в Linux и Windows, а некоторые пути кода NumPy зависят от размера C long. Он исправлен в главной ветки, но еще не зафиксирован в любом выпуске.
Как только исправление будет выпущено, и вы обновите его до фиксированной версии, вы увидите dtype int8
на всех платформах.