我正在考虑写一个函数来规范化一些数据。一个简单的方法是修改通过,嵌套字典/列表
def normalize(l, aggregate=sum, norm_by=operator.truediv):
aggregated=aggregate(l)
for i in range(len(l)):
l[i]=norm_by(l[i], aggregated)
l=[1,2,3,4]
normalize(l)
l -> [0.1, 0.2, 0.3, 0.4]
然而,对于嵌套列表和类型的字典,我想内指数正常化在这个行不通的。我的意思是我想得到
l=[[1,100],[2,100],[3,100],[4,100]]
normalize(l, ??)
l -> [[0.1,100],[0.2,100],[0.3,100],[0.4,100]]
任何想法如何我可以实现这样的标准化函数?
也许这将是疯狂的凉爽写
normalize(l[...][0])
是否有可能使这项工作?还是其他想法?
也不仅列表,但也可以嵌套字典。嗯...
编辑: 我刚刚发现,numpy提供了这样的语法(但列表)。任何人都知道我将如何自己实施省略技巧?
任何重要原因,使就地操作而不是创建新对象?它可能会稍微慢一点,但从长远来看,它是值得的。 – tokland 2011-02-06 22:06:51