0
我有一個空的'numpy.ndarray'來更新。Python更新數組字典
import numpy as np
my_grid = np.zeros((5, 5))
# stat
parse = "max","min","avg"
# create a dictionary for each element of parse
grid_stat = {}
for arg in parse:
grid_stat[arg] = my_grid
grid_stat
{'avg': array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'max': array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'min': array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])}
我願與新價值每格在字典更新(這將是一個循環的一部分) 例如:on dy = 0, dx = 0, max= 100, min= 50, avg = 75
grid_stat
{'avg': array([[ 75., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'max': array([[ 100., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'min': array([[ 50., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])}
我想一個簡單的解決方案
grid_stat['avg'][0,0] = 100
但最大值和最小值的更新值爲100
grid_stat
{'avg': array([[ 100., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'max': array([[ 100., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]]),
'min': array([[ 100., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])}
由於DSM但對不起,我我以前不得到我的問題的建議。 – 2013-03-03 19:19:31
@Gianni:不要使用'grid_stat [arg] = my_grid'。使用'grid_stat [arg] = my_grid.copy()'。 – DSM 2013-03-03 19:21:55
它的工作原理,謝謝。對不起,如果我問.copy()和爲什麼它使用複製? (我需要提高自己的技能) – 2013-03-03 19:27:55