簡體   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