我想在插值后更新字典中的“陣列”。
例如,“array_ex”是一個字典,具有如下值,“0_array”具有 (6,100) 形狀,而“1_array”具有 (6,200) 形狀...
{"0_array": array([[17., 20., 15., ..., 42., 52., 32.],
[24., 33., 19., ..., 100., 120., 90.],
...,
[2., 3., 4., ..., 1., 3., 4.],
[10., 11., 12., ..., 13., 16., 17.]]),
"1_array": array([[20., 20., 15., ..., 42., 43., 35.],
[52., 33., 22., ..., 88., 86., 90.],
...,
[10., 11., 17., ..., 71., 23., 24.],
[34., 44., 28., ..., 42., 43., 17.]])}
我撰寫了一個使用 np.interp 對陣列進行插值的函式。該函式將陣列 (6,100) 的形狀插入到 (6,200)。但是,如何在插值后更新我的陣列?函式的名稱是“convert_array”。
for i,a in array_ex.items():
for row in a:
convert_array(row,100,200) #interpolate 100 to 200
我想在插值后獲得帶有更新陣列的“array_ex”。謝謝。
uj5u.com熱心網友回復:
從包含陣列的 dict 開始:
In [168]: dict1 = {'one':np.arange(3), 'two':np.ones(3)}
從這些陣列、相同的鍵、新陣列中創建一個新的字典:
In [169]: dict2 = {k:v*2 for k,v in dict1.items()}
In [170]: dict1
Out[170]: {'one': array([0, 1, 2]), 'two': array([1., 1., 1.])}
In [171]: dict2
Out[171]: {'one': array([0, 2, 4]), 'two': array([2., 2., 2.])}
或者使用更像你的回圈:
In [172]: dict3 = {}
...: for k,v in dict1.items():
...: dict3[k] = v.repeat(2)
...:
In [173]: dict3
Out[173]: {'one': array([0, 0, 1, 1, 2, 2]), 'two': array([1., 1., 1., 1., 1., 1.])}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488976.html
