我有一个似乎无法解决的问题。
我正在从文件的行(每行30个值的100行)中构建一个形状为(100,30)的numpy数组,我需要将此数组做成具有平均值的形状(100,)原始数组每一行的 n 个最后值的值。
我的目标是在同一行中做到这一点,所以我尝试了嵌套列表理解,但是我觉得完全迷失了方向,我不确定自己在做什么。
这是到目前为止我得到的,这给了我正确的形状数组,但是(我相信)值有误。
$comment = new App\Person(['name' => 'test']);
$company= App\Company::find(1);
$company->people()->save($person);
输入和输出应类似于:
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, )
我也乐意接受有关列表切片的建议。谢谢您的帮助!
答案 0 :(得分:3)
如果我正确地理解了您的问题,那么假设2d数组中的每一行都具有相同的长度,那么实际上可以使用numpy很快完成此操作:
{
id: "d6dd8228-e0a6-4cb7-ab83-50ca5a937d45"
image: "https://zuomod.ca/image/cache/catalog/products/2018/Single/medium/50105-1-800x800.jpg"
inQueue: false
indicatorImg: "https://cdn.shopify.com/s/files/1/0003/9252/7936/files/Level-0.png"
saved: false
sku: "50105"
title: "Interstellar Ceiling Lamp"
}
加载文件,切片以包括所有行,但仅包括最后的def perf_n_last(n):
return np.loadtxt("myfile.txt")[:,-n:].mean(1)
列,并取每个结果行的平均值。