numpy中缩放和堆叠列的代码行较少

时间:2014-04-16 21:38:25

标签: python numpy ipython-notebook

我刚刚开始使用iPython和numpy。我确信可以使用更少的代码执行与下面相同的操作。我想将所有列(=数据点的维度,即行)缩放到0到1之间的值,并将列重新组合为一具有相同"形状"。

的数组
import numpy as np
from StringIO import StringIO

data = np.genfromtxt("wine_names.csv", dtype=float, delimiter=',', skip_header=1) 

Data.shape => (178,14)。一个包含178行和14列的csv文件(14个维度中的178个数据点)。

data0 = (data[:,0] - np.amin((data[:,0]))) / (np.amax((data[:,0]))-np.amin((data[:,0])))
data1 = (data[:,1] - np.amin((data[:,1]))) / (np.amax((data[:,1]))-np.amin((data[:,1])))
data2 = (data[:,2] - np.amin((data[:,2]))) / (np.amax((data[:,2]))-np.amin((data[:,2])))

直到n 。在这种情况下它是14.这可以用较少的代码编写我相信,但我不知道如何..

data_all = np.column_stack([data0, data1, data2])

这里也是np.column_stack([data0,data1,data2, .....,n ])

1 个答案:

答案 0 :(得分:2)

通过沿轴获取最小值和最大值,您可以在一行中完成。

data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))