0

複数のファイルのデータを比較する関数を作成しようとしています。ファイルは、ダイアログ ウィンドウを介して選択されます (GUI プラットフォーム Tkinter から)。

def compare_datafiles(file_name): 
    data = np.genfromtxt(file_name, dtype=float, delimiter=',', skiprows=(2), usecols=(1,2,3,4,5,6), skip_footer=(3))
    initial = data[0,:]
    final = data[-1,:]
    weightDiff=final-initial  
    data=np.row_stack((data, weightDiff)) 
    totalWD=sum(data[4,:]) # calculate total weight
    distr=np.round((weightDiff/totalWD),2) 
    print distr
    return  distr   

for x in selectedFiles:
        M = compare_datafiles(x)

2 つの入力ファイルで関数を実行すると、2 つの配列が出力されます。

runfile(r'C:\Users...)
    [ 0.23  0.04  0.1   0.14  0.12  0.38]
    [ 0.22  0.05  0.13  0.16  0.12  0.32]

ただし、そのうちの 1 つだけを返します。

M
array([ 0.22,  0.05,  0.13,  0.16,  0.12,  0.32])

両方の配列を返すにはどうすればよいですか?

4

1 に答える 1

1

コードでは、次のように記述します。

for x in selectedFiles:
    M = compare_datafiles(x)

Mループごとに再割り当てするため、最後の値のみが保存されます。リストを作成Mして追加するか、リスト内包表記を使用できます。

>>> M = [compare_datafiles(x) for x in selectedFiles]
于 2013-10-15T08:37:35.103 に答える