d的归一化

2024-05-16 01:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码来规范从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)与上述行和列相对应的数字。基于特定列中的最大值,对每列的数据进行标准化。在

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

我想要一些类似的东西:

^{pr2}$

我该怎么做?在


Tags: 数据代码npmaxxtttvalx1valx2
2条回答

将数据导入numpy数组。然后,您将能够得到基于每列的最大值,然后将整个数组除以该最大值

即:

import numpy as np

arr = np.random.randint(0, 100, (10,5)) # replace this line with [np.array][1] 
                                        # to load your data from excel

print(arr)

[[41 71 95 62 26]
 [85 37  5 71 74]
 [14 75 93 70 66]
 [86 79 93  7 39]
 [ 4 84 97 92 24]
 [54 28 49 62 36]
 [37 63 84 45 88]
 [48 92 48 93 94]
 [47 74 22 58 94]
 [34 92 86 30 85]]

print(np.max(arr, axis=0))

[86 92 97 93 94]

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

[[ 0.47674419  0.77173913  0.97938144  0.66666667  0.27659574]
 [ 0.98837209  0.40217391  0.05154639  0.76344086  0.78723404]
 [ 0.1627907   0.81521739  0.95876289  0.75268817  0.70212766]
 [ 1.          0.85869565  0.95876289  0.07526882  0.41489362]
 [ 0.04651163  0.91304348  1.          0.98924731  0.25531915]
 [ 0.62790698  0.30434783  0.50515464  0.66666667  0.38297872]
 [ 0.43023256  0.68478261  0.86597938  0.48387097  0.93617021]
 [ 0.55813953  1.          0.49484536  1.          1.        ]
 [ 0.54651163  0.80434783  0.22680412  0.62365591  1.        ]
 [ 0.39534884  1.          0.88659794  0.32258065  0.90425532]]

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

^{pr2}$

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

你可以考虑miniconda。这是一个python发行版,可以非常容易地安装复杂的依赖项,比如numpy(pandas依赖于它)

一旦你运行了python+pandas,进行正常化就很容易了。请参阅this answer以获得一个好的解释!!在

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

编辑:在重读了你的问题之后,我想现在你已经有了numpy了。因此,使用pip安装熊猫更容易。在

相关问题 更多 >