Почему математические операции с моим массивом целых чисел np округляют значения, а не генерируют числа с плавающей запятой?
Я пытаюсь выполнить масштабирование функций min/max в массиве 2D Numpy. Вот мой код:
def mm_scale(min, max, data):
for i in range(0, len(data)):
for j in range(0, len(data[0])):
#Here's where the scaling happens. "min" and "max" are the min and max array values.
data[i][j] = ((data[i][j] - min)/(max - min))
return data
Если я ввожу матрицу, заполненную значениями INT, матрица возвращается со значениями либо нуля, либо единицы. Я ищу что-то более точное, чем это, например, число с плавающей запятой как минимум с пятью десятичными знаками.
Если я запустил свою функцию в этом массиве:
[[ 4 82 23 31 55 30 72 44 12 70]
[63 52 7 77 2 31 63 62 98 41]
[ 9 23 17 96 16 72 64 66 89 32]
[62 67 81 47 11 11 99 55 16 97]
[54 72 94 58 22 22 42 88 76 55]
[80 75 58 71 5 62 31 36 28 62]
[68 8 58 78 54 35 15 78 9 3]
[29 17 29 52 90 54 52 54 92 50]
[48 11 7 83 39 45 29 88 49 67]
[91 17 27 25 48 34 43 68 32 81]]
В результате получился такой массив:
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]]
Я решил проверить математику на обычных целых числах вне массивов. Если я сделаю это:
print((55 - 2)/(88-2))
Я не получаю округленное значение! Вместо этого я получаю 0,6162790697674418. Что-то происходит в моем массиве np, что заставляет мои значения округляться до единицы или нуля вместо того, чтобы красиво становиться десятичными?