1. 程式人生 > >Pandas之iris資料集簡單分析

Pandas之iris資料集簡單分析

 匯出iris資料集

from sklearn import datasets
import pandas as np


iris_datas = datasets.load_iris()

iris_data是一個類似字典的物件。

print(iris_datas.data) # 資料集中的資料
print(iris_datas.target_name) #  iris的種類

iris = pd.DataFrame(iris_datas.data, columns=['SpealLength', 'Spealwidth', 'PetalLength', 'PetalLength'])

iris.shape
iris.head()

(150, 4)

    SpealLength	 Spealwidth	PetalLength	PetalLength
0	    5.1	        3.5	        1.4	     0.2
1	    4.9	        3.0	        1.4	     0.2
2	    4.7	        3.2	        1.3	     0.2
3	    4.6	        3.1	        1.5	     0.2
4	    5.0	        3.6	        1.4	     0.2
描述性統計
iris.describe().T     # 描述性統計轉置


花萼長度與寬度/花瓣長度與寬度的視覺化,判斷是否僅依據其即可判別鳶尾花品種。

from collection import Counter, defaultdict
import matplotlib
import matplotlib.pyplot as plt


matplotlib.rcParams['font.sans-serif'] = ['SimHei']

style_list = ['o', '^', 's']       # 設定點的不同形狀,不同形狀預設顏色不同,也可自定義
data = iris_datas.data
labels = iris_datas.target_names
cc = defaultdict(list)

for i, d in enumerate(data):
    cc[labels[int(i/50)]].append(d)

p_list = []
c_list = []

for each in [0, 2]:
    for i, (c, ds) in enumerate(cc.items()):
        draw_data = np.array(ds)
        p = plt.plot(draw_data[:, each], draw_data[:, each+1], style_list[i])
        p_list.append(p)
        c_list.append(c)

    plt.legend(map(lambda x: x[0], p_list), c_list)
    plt.title('鳶尾花花瓣的長度和寬度') if each else plt.title('鳶尾花花萼的長度和寬度')
    plt.xlabel('花瓣的長度(cm)') if each else plt.xlabel('花萼的長度(cm)')
    plt.ylabel('花瓣的寬度(cm)') if each else plt.ylabel('花萼的寬度(cm)')
    plt.show()