Я пытаюсь заполнить массив np.zeros
2d некоторыми значениями, а затем нормализовать эти значения с максимальным значением в каждой строке.
Я делю каждое значение этой строки на максимальное значение, используя max()
функция. Хотя я получаю правильное деление с плавающей запятой для значений в массиве вплоть до максимального значения, Python возвращает только 1.
для значений после максимального значения в массиве.
Как можно получить правильные значения в этот случай?
Я использую Python 3.6.2 с ноутбуком Jupyter.
import numpy as np
from matplotlib import pyplot as plt
np.set_printoptions(threshold=np.inf) #for printing full array
l1 = np.zeros((5,10))
l2 = np.arange(500)
for j in range(len(l1[:,0])):
for i in range(len(l1[0,:])):
if i<(j+(len(l1[0,:])/2)):
l1[j,i] = l1[j,i-1]+1
if i>(j+(len(l1[0,:])/2)-1):
l1[j,i] = l1[j,i-1]-1
for j in range(len(l1[:,0])):
for i in range(len(l1[0,:])):
l1[j,i] = l1[j,i]/(max(l1[j,:]))
fig,ax = plt.subplots(figsize = (5,25))
ax.imshow(l1)
ax.set_aspect('5')
print(l1[0,:])
Результат, который я получаю:
[0.2 0.4 0.6 0.8 1. 1. 1. 1. 1. 0. ]
Массив без нормализации :
[1. 2. 3. 4. 5. 4. 3. 2. 1. 0.]