我有一些需要清理的字符,例如:python:功能錯誤的字典 - 錯誤的TypeError
dict = {
'sensor1': [list of numbers from sensor 1 pertaining to measurements on different days],
'sensor2': [list of numbers from from sensor 2 pertaining to measurements from different days],
etc. }
有些日子,有不好的價值觀,我想從那個糟糕的一天生成的所有傳感器值的新字典來用鍵的一個值使用的上限被刪除:
def clean_high(dict_name,key_string,limit):
'''clean all the keys to eliminate the bad values from the arrays'''
new_dict = dict_name
for key in new_dict: new_dict[key] = new_dict[key][new_dict[key_string]<limit]
return new_dict
如果我在IPython中單獨運行所有的行,它就可以工作。糟糕的日子被淘汰了,好的日子也被保留下來了。這些類型numpy.ndarray
都:new_dict[key]
和new_dict[key][new_dict[key_string]<limit]
但是,當我運行clean_high()
,我得到的錯誤:
TypeError: only integer arrays with one element can be converted to an index
什麼?
clean_high()
的內部,new_dict[key]
的類型是一個字符串,而不是一個數組。 爲什麼類型會改變?有沒有更好的方法來修改我的字典?
你能否提供一個示例數據的工作示例以及完整的錯誤跟蹤? – 2014-10-18 22:02:15
你傳遞給'clean_high(...)'的參數是什麼?另外,每個傳感器的陣列是否具有相同的形狀(每個傳感器在同一天進行測量)?如果一個傳感器的日子不好,你想從所有傳感器中刪除那天的值? – cm2 2014-10-18 22:03:06