У меня есть текстовый файл с столбцами "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
Преобразуйте файл в dataframe pandas.
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