模塊四 第一週 作業二 分類

1 問題描述

  • 將數據array([6, 9, 6, 1, 1, 2, 8, 7, 3, 5, 6, 3, 5, 3, 5, 8, 8, 2, 8, 1, 7, 8,7, 2, 1, 2 , 9, 9, 4, 9]) 轉化爲矩陣

在這裏插入圖片描述

  • 將第三列中,小於等於3的修改爲0、大於3且小於等於6的修改爲1、大於6的修改爲2

在這裏插入圖片描述

  • 假設這是10條樣本數據,前兩列是樣本的兩個特徵,第3列是樣本的分類標記,請分離出樣本

    的特徵和分類 標記,分別存放在兩個變量中,用 X_train 存放樣本特徵(紅色部份), y_train

    存放分類標記(綠色部份)

在這裏插入圖片描述

  • 用 numpy 的比較運算,通過 y_train 中的數據,分離出 X_train 中的 3 個分類

在這裏插入圖片描述

2 解題提示

  1. 通過 reshape來對arry進行維度的轉化
  2. 注意二維數組在取某一列數據是的格式
  3. 通過標識來對數據集進行分類

3 評分標準

共計 25 分,要求一,三,五各5分,要求二10分。

4 要點解析

  • 數組索引

import numpy

# 一維數組
arr = numpy.arange(16)
print(arr)

# 獲取單個元素 -- 通過下標
data = arr[-1]
print(data)

# 獲取多個元素 --通過切片,不包含結束位置
data = arr[4:13]
print(data)

# 使用下標獲取多個元素,需要注意:需要多個下標組成一個元素
data= arr[[4,5,6,7,9]]
print(data)


# 二維數組
arr = numpy.arange(16).reshape(4,4)
print(arr)

# 獲取第一行元素
data = arr[0]
print(data)

# 獲取第一列元素
data = arr[:,0]
print(data)

# 獲取前兩行,前兩列
data = arr[:2,:2]
print(data)

# 獲取0 2 行的前兩列
data = arr[[0,2],0:2:1]
print(data)

# 獲取1 2行的1 2列元素
data = arr[[1,2],1:3]
print(data)
  • 比較運算與賦值

    = 賦值:將指定的元素賦值

    == 比較運算:返回同形的bool數組

5 代碼實現

#%%
import numpy as np
#%%
# 隨機數種子
np.random.seed(1)
# 生成隨機的10行3列數組
X=np.random.randint(1,10,size=(10,3))
#%%
X
#%%
a = X[:,2]
a
#%% md
## 將第三列中按照要求進行轉化
#%%
a[a<=3]=0
a
#%%
a[(a>3) & (a<=6)] = 1
a
#%%
a[a>6]=2
a
#%%
# 將轉化之後 與 X進行結合
X[:,2]=a
X
#%%
X_train = X[:,:2]
Y_train = X[:,2]
#%%
X_train
#%%
Y_train
#%% md
## 進行分類
#%%
# 分類爲0的樣本
X_train[Y_train==0]
#%%
# 分類爲1的樣本
X_train[Y_train==1]
#%%
# 分類爲2的樣本
X_train[Y_train==2]
#%%

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章