各位大佬,初学python对下面这个问题不太能理解,求帮助。
创建以下函数,完成对字典的清理。
转换操作1.定义一个函数,删除字典中非数字的元素(如空值,非数字字符,若是数字字符转换为整型),返回一个清理后的字典
2.定义一个函数,用于求一组数据的标准差
3. 定义一个函数,对于一组数据进行标化处理 公式:x*=(x-均值)/标准差
创建一个字典,调用以上函数,先进行清理,然后将清理后的每元素值进行标化
代码可以这样写:
import numpy as np
def proc(d):
new = {}
for k,v in d.items():
if str(v).isdigit():
new.update({k:v})
elif all([x.isdigit() for x in str(v).split('.')]):
new.update({k: int(float(v))})
return new
def std(arr):
a=np.array(arr)
return np.std(a)
def std1(arr):
a=np.array(arr)
return (a-np.mean(a))/std(a)
d={'a':'','b':'test','c':'22.8','d':21.5,'e':23}
print(proc(d))
print(std([2,4,6]))
print(std1([2,4,6]))
如有帮助,请采纳。点击我回答右上角【采纳】按钮。
import numpy as np
def get_dict(d):
new_dict = {}
for k, v in d.items():
if str(v).isdigit():
new_dict[k] = int(v)
return new_dict
def get_std(arr):
arr_std = np.std(arr, ddof=1)
print('标准差:', arr_std)
d = {'1': 'a', '2':2, '3':'4', '4':'b'}
new_dict = get_dict(d)
print('清洗后字典:', new_dict)
arr = list(new_dict.values())
get_std(arr)
标化处理 公式:x*=(x-均值)/标准差的x代表什么?