2017-06-29 56 views
-3

我想要做一個循環讀取一些數組,然後它計算數組的元素總和。爲2個數組執行此操作的函數是numpy.add。在我的情況下,我想構建一個循環來爲3個以上的數組執行此操作。循環python中的數組元素明智的總和

例如 file_1,file_2和file_3是數組:[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]

我的代碼:

import pandas as pd 

# load files 
x1 = pd.read_csv('file_1.csv') 
x2 = pd.read_csv('file_2.csv') 
x3 = pd.read_csv('file_3.csv') 
# Calculate the sum of these arrays. 
X = x1 + x2 + x3 

以上優良工程。 目標:做出上述循環。

嘗試:

n=4 
for i in range(1,n): 
    x = pd.read_csv('file_{}.csv'.format(i),header=None) 
    print(x) 
    x += x 
print(x) 

的結果是不正確的。任何提示?

編輯: 解決的答案是低於

+0

@roganjosh我的輸出與相同尺寸的數組作爲X1,X2,X3。換句話說,它是X1,X2,X3的平均數組。 – sera

+0

這是一個偉大的目標!祝你好運。如果您對這些嘗試有任何問題,請告訴我們。 –

+0

@AlanLeuthard我問的原因是因爲我很難與此相關。你有什麼建議嗎? – sera

回答

0

解決

import pandas as pd 
from numpy import * 

def my_mean(): 

    N=array([[0,0],[0,0]]) 
    numb = 4 
    subjs=range(1,numb) 

    for s in subjs: 
     X= pd.read_csv('file_{}.csv'.format(s),header=None) 
     N += X 

    N = N/float(3) 

    return N 

X = my_mean() 
print(X) 
0

我敢肯定,我們可以像下面的例子文件中讀取多條線路,請嘗試。

from itertools import izip 
    for lines_from_firstfile, lines_from_secondfile, lines_from_third_file 
    in izip(open(firstfile), open(secondfile), open(thirdfile): 

所以在方法打開3個文件像上面,然後嘗試添加值,即X1 + X2 + X3

+0

謝謝,但我剛剛發佈了一個工作正常的答案。 – sera

+0

@sera,我不告訴你的答案是錯誤的,但這只是一個替代解決方案。哪些工作。我不明白爲什麼它downvoted。 –