用Python规范化数据集

用Python规范化数据集,python,normalize,Python,Normalize,所以我有一个数据集,我想被规范化。数据集包含一组数字,因此我只想发布其中一行: 1,1,22,22,22,19,18,14,49.895756,17.775994,5.27092,0.771761,0.018632,0.006864,0.003923,0.003923,0.486903,0.100025,1,0 有人知道怎么做吗?我不允许使用Scikit学习。为了规范化数据集,您只需计算数据集的平均df['column\u name'].平均值和标准偏差df['column\u nam

所以我有一个数据集,我想被规范化。数据集包含一组数字,因此我只想发布其中一行:

    1,1,22,22,22,19,18,14,49.895756,17.775994,5.27092,0.771761,0.018632,0.006864,0.003923,0.003923,0.486903,0.100025,1,0

有人知道怎么做吗?我不允许使用Scikit学习。

为了规范化数据集,您只需计算数据集的平均df['column\u name'].平均值和标准偏差df['column\u name'].std,然后从数据集中的每个值中减去平均值,并将结果除以标准偏差

所以结果会是这样的:

平均值=df[“列名称”]。平均值 std=df[“列名称”].std 标准化=df['column_name']-avg/std
标准化获取所有值并对其进行变换,使其位于0和1之间

要执行此操作,请执行以下操作:

首先找到最小值a,最大值b 取数据集中的每个值,称之为d,然后找到d-a/b-a。 d-a确保范围从[a,b]到[0,b-a],然后除以b-a得到范围[0,1]

在Python中,首先将数据集转换为numpy数组,这是一种更高效的数据结构

import numpy as np
d = np.array(your_dataset)
然后找到最大值和最小值

a = d.min()
b = d.max()
最后,您将执行该操作

d = (d-a)/(b-a)

好的,谢谢。也许我的问题不清楚,但这只会正常化一行,对吗?我的真实数据集包含1000多行数字。没问题!在numpy数组上执行操作时,该操作将广播到数组中的每个元素;所以在这段代码中,所有的数字行都会受到影响。您希望只影响一行还是整个数据集?请提供真实数据,以便我们知道您是否希望按行或列进行规范化