Python 数据标准化

Python 数据标准化,python,normalization,Python,Normalization,我有一个规范化从xls导入的数据的代码。下面是一个s import numpy as np Xt, Tt = XLSImport('AI_sample.xlsx') # calculate the maximum values valX1_max = np.max((Xt)[0]) valX2_max = np.max((Xt)[1]) valX3_max = np.max((Xt)[2]) valX4_max = np.max((Xt)[3]) valX5_max = np.max((Xt)

我有一个规范化从xls导入的数据的代码。下面是一个s

import numpy as np
Xt, Tt = XLSImport('AI_sample.xlsx')

# calculate the maximum values
valX1_max = np.max((Xt)[0])
valX2_max = np.max((Xt)[1])
valX3_max = np.max((Xt)[2])
valX4_max = np.max((Xt)[3])
valX5_max = np.max((Xt)[4])
valX6_max = np.max((Xt)[5])
valX7_max = np.max((Xt)[6]) 
valX8_max = np.max((Xt)[7])

valT1_max = np.max((Tt)[0])
valT2_max = np.max((Tt)[1])

print valX1_max, valX2_max, valX3_max, valX4_max, valX5_max, valX6_max, valX7_max, valX8_max, valT1_max, valT2_max


# normalize data
Xt[0] /= valX1_max
Xt[1] /= valX2_max
Xt[2] /= valX3_max
Xt[3] /= valX4_max
Xt[4] /= valX5_max
Xt[5] /= valX6_max
Xt[6] /= valX7_max
Xt[7] /= valX8_max
Tt[0] /= valT1_max
Tt[1] /= valT2_max

print Xt, Tt
这是一个相当简单的代码,其中,Xt和Tt是数据集。Xt的尺寸是(750,8),其中750是行数,8是列数,Tt的尺寸是(750,2)与上述行和列对应的数字。将根据特定列中的最大值对每列的数据进行标准化

现在我想创建一个函数并创建一个循环,这样我就不想像在我的示例中那样一遍又一遍地重复相同的代码。我该怎么做?我是编程新手,对循环概念不太熟悉。先谢谢你

我想要一些像:

func norm(param):
     val_max = []
     for i in range(num_rows):
           #and the normalization inside this block

我应该如何做到这一点?

我建议使用python中许多优秀的数据处理库之一。熊猫似乎特别容易使用。你需要的大部分东西可能已经在那里编程了

你可以考虑一下。这是一个python发行版,可以很容易地安装复杂的依赖项,例如numpy(pandas依赖的地方)

一旦运行python+pandas,进行规范化就很容易了。看一个好的解释

祝你好运,欢迎来到python编程的现有世界:)


编辑:在重读了你的问题之后,我想现在你已经开始跑步了。因此,使用pip安装pandas更容易。

将数据导入numpy阵列。然后,您可以根据每列获取最大值,然后将整个数组除以该最大值

i、 e:

打印只是为了可视化,您只需要:

import numpy as np

arr = np.random.randint(0, 100, (10,5))

norm = arr/np.max(arr, axis=0)
import numpy as np

arr = np.random.randint(0, 100, (10,5))

norm = arr/np.max(arr, axis=0)