python数据处理

有106列,106行数字的文件已读取 求每一行前53个和后53个的平均数,相除后取log2 用的是pycharm

我自己改进了一下,应该是没有错的,你看一下

import numpy as np
from numpy import random
import math
result=[]
x = random.randint(2,size=(106,106)) #随机生成一个[106,106]的矩阵
print(x)
for j in range(106): # 遍历每一行 
    y1 = x[j,1:53].sum() # 前53的总和 
    y1 = y1/53 
    y2 = x[j,54:106].sum() # 后53的总和 
    y2 = y2/53 
    result.append(math.log(y1/y2)) 
print(len(result)) # 是106,代表有106个结果

将106行的数字用列表存储,然后用sum()计算列表各个元素的和,标准库math有计算log2的,如x = math.log2(8)

可以用pandas处理,分别取到前53和后53的平均数 然后调用log方法计算 math.log(df.iloc[:, [:53]].mean()/df.iloc[:, [53:]].mean(), 2)

我给个大概思路 import math for j in range(106) # 遍历每一行 y1 = x[j,1:53].sum() # 前53的总和 y1 = y1/53 y2 = x[j,106:54].sum() # 后53的总和 y2 = y2/53 result.append(math.log(y1/y2)) 意思是这么个意思,因为我这个方面matlab用的比较多,python不是很熟,你让我具体调整下。你先看着哈