鸢尾花数据集:
1)实现
# -*- coding:utf-8 -*-
"""
Author: XXXXXX
Purpose: 给字典中增加点属性,用于通过点来获取字典中的值
Created: 2020/10/12
"""
import pandas as pd
class Point_Attribute(dict):
#给字典中加入点属性
def __init__(self, **kwargs):
super().__init__(kwargs)
def __setattr__(self, key, value):
#设置属性
self[key] = value
def __getattr__(self, key): #当出现iris.datas时,调用getattr方法
#获取属性
self[key]
return self[key]
def data_preprocess(data):
iris.drop(axis=0, columns="Id", inplace=True) #取除多余行
iris.drop_duplicates(inplace=True) #取除重复的行
label_type = {}
species = set(iris["Species"]) #
for i,j in enumerate(species): #{'Iris-versicolor': 0, 'Iris-virginica': 1, 'Iris-setosa': 2}
label_type[j]=i
iris["Species"] = iris["Species"].map(label_type) #数字代替花的类别
return iris
if __name__ == "__main__":
iris = pd.read_csv("Iris.csv")
data_preprocess(iris)
iris = Point_Attribute(datas=iris.iloc[::,:4].values,target = iris.iloc[::,4:].values)
#datas=iris.iloc[::,:4].values,target = iris.iloc[::,4:].values
print(iris.datas)
print(iris.target)
2)通过easydict模块,通过属性访问字典的值
from easydict import EasyDict as edict
a = edict({"a":1,"b":2})
print(a.a) # 1
print(b.b) # 2