numpy中用于缩放和堆叠列的代码行更少

2024-09-27 09:22:08 发布

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

我刚开始用iPython和numpy。我确信可以用更少的代码做下面的事情。。我想将所有列(=数据点的维度,即行)缩放为0到1之间的值,并将这些列重新组合为一个具有相同“形状”的数组。你知道吗

import numpy as np
from StringIO import StringIO

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

你知道吗数据.shape=>;(178,14)。一个包含178行14列(178个数据点,14个维度)的csv文件。你知道吗

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.u列堆栈([data0,data1,data2,..,n])


Tags: csv数据代码importnumpydataipythonnp
1条回答
网友
1楼 · 发布于 2024-09-27 09:22:08

通过沿轴取最小值和最大值,可以在一行中完成。你知道吗

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

相关问题 更多 >

    热门问题