我有一个带有“ n”列和许多行的文本文件。

如何使用for循环从第1列和“第n / 2个”列开始逐行求平方和的平方根之和?

例如,假设我的文本文件有4列3行,看起来像这样:

x11 x12 x13 x14

x21 x22 x23 x24

x31 x32 x33 x34

我想找到:

Sq( x11**2 + x13**2 )+Sq( x21**2 + x23**2 )+Sq( x31**2 + x33**2 )

Sq( x12**2 + x14**2 )+Sq( x22**2 + x24**2 )+Sq( x32**2 + x34**2 )

参考方案

您正在使用python。然后,您可以使用pandas包来处理数据。

import pandas as pd

import numpy as np

将文件转换为熊猫的数据框。

df = pd.read_table('path_to_your_file', delimiter = " ", header=None)

您将得到类似的内容:

| 0 1 2 3

--|------------

0 | x x x x

1 | x x x x

2 | x x x x

创建功能

def create_new(df):
new_row = 0
mid = df.shape[1]//2
for i in range(0, mid):
new_row += np.sqrt(df[i]**2+df[i+mid]**2)
return new_row
df['n+1'] = df.apply(create_new, axis=1)

它将创建一个名为n+1的新列,其中包含每行的计算。

| 0 1 2 3 n+1

--|------------------

0 | x x x x y

1 | x x x x y

2 | x x x x y