numpy: неверный результат при приведении большого числа float32 к int32 - PullRequest
0 голосов
/ 26 августа 2018

У меня есть пустой массив типа np.float32 (на самом деле это не дробная часть), и я ожидаю, что он будет приведен только к целочисленной части (2143289300), но приведенный ниже результат отличается (2143289344), знаете ли вы, почему ? Я думаю, это связано с переполнением, но как правильно конвертировать float32 в int32 или int64 в numpy? я попробовал np.trunc, но результат все еще float32.

t = np.array([2143289300.0],dtype=np.float32)
print(int(t))
print(t.astype(np.int32))
print(t.astype(np.int64))
t2 = np.trunc(t)
print(t2)
print(t2.dtype)

2143289344
[2143289344]
[2143289344]
[2.1432893e+09]
float32
...