2017-12-07 10 views
0

辞書内にある2次元配列内のすべての値から値(dark_val)を減算しようとしています。現在、私は、各キーをループして、リストに値を抽出し、リストの内包表記を使用しています:辞書内の2次元配列内の各要素から値を減算する

理想的
def dark_subtract(dic, dark_val): 

    band_values = [] 

    # loop through the keys and variables to lists 
    for key, value in dic.items(): 
     band_values.append(value) 

    band_values[:] = [x - dark_val for x in band_values] 

    return band_values 

、しかし、私は(私は辞書ではなく、リストを返すように、辞書内反復処理したいと思いますすなわちband_values)。

どちらか私は次のことを試してみました、それはすべてのエラーを起動しませんが、値は変更されません

def dark_subtract(dic, dark_val): 
    """ 
    Must be a dictionary input and a variable containing dark value 
    """ 
    for entry in dic: 
     if type(dic[entry]) is dict: 
      dic[entry] = dark_subtract(dic[entry]) 
     else: 
      dic[entry] - 100 

    return dic 
    print dic 

次のように私は関数を呼び出す方法は次のとおりです。

dark_dic = dark_subtract(dic, d_value) 
print "This is the original values:\n", dic 
print "This is the dark current corrected values:\n", dark_dic 
dark_valだけである

{'Band_1': array([[26176, 25920, 26816, ..., 53632, 53440, 52544], 
     [25408, 24448, 23872, ..., 46592, 47040, 49216], 
     [27264, 25024, 25792, ..., 50368, 51648, 51648], 
     ..., 
     [32960, 32576, 32512, ..., 13568, 14528, 14720], 
     [38784, 36416, 35648, ..., 18816, 15680, 16512], 
     [33152, 32512, 32192, ..., 14464, 14720, 14784]], dtype=uint16)} 

:印刷のような辞書dicに見える

整数(現在は75に設定)

アイデア?

答えて

1

すでにNumPy配列があります。したがって、整数を直接減算することができます。

for key, value in dic.items(): 
     dic[key] = value - dark_val 
関連する問題