繁体   English   中英

numpy的嵌套列表理解

[英]Nested list comprehension for numpy

我有一个似乎无法解决的问题。

我正在从文件的行(每100行包含30个值的行)中构建一个形状为(100,30)的numpy数组,我需要将此数组转换为形状(100,),其中n为均值来自原始数组每一行的最后一个值。

我的目标是在同一行中完成此操作,因此我尝试了嵌套列表推导,但是我觉得完全迷失了方向,我不确定自己在做什么。

这就是我到目前为止所得到的,这为我提供了一个正确的形状数组,但具有(我相信)错误的值。

def perf_n_last(n):
    a = np.array([np.mean([i for j in range(len(i)-1, len(i)-(n+1), -1)]) for i in np.loadtxt('myfile.txt')])
    print(a.shape) #outputs (100, )

输入和输出应类似于:

input_f = [[1. 2. 3. 4. 5.]
           [2. 3. 4. 5. 6.]
           [3. 4. 5. 6. 7.]]
#We assume n = 2
output_f = [4.5 5.5 6.5]

我也乐于接受有关列表切片的建议。 感谢您的帮助!

如果我正确理解了您的问题,那么使用numpy可以非常快速地完成此操作,假设2d数组中的每一行的长度都相同:

def perf_n_last(n):
    return np.loadtxt("myfile.txt")[:,-n:].mean(1)

加载文件,切片以包括所有行,但仅包括最后n列,并取每个结果行的平均值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM