from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest =\
train_test_split(x,y,test_size=0.3,
random_state=42,shuffle=True)

樣品分割:

參考解答:

import pandas as pd
import sys
fpath = r”C:\Python\P107\BostonHousing.csv”
dataset = pd.read_csv(fpath)
#.shape = (506, 14)
headerList = dataset.columns.tolist()
cols = dataset.columns.size
# dataset.columns.size = 14
x = dataset.drop(headerList[-1],axis=1).values
y = dataset[headerList[-1]].values
“””
#x=dataset.iloc[:,0:cols-1].values
#y=dataset.iloc[:,cols-1:].values
#用iloc切片的y 資料非常像,
#但變成2D,第二維長度僅有1
#y=dataset.iloc[:,cols-1:].values.ravel()
#用ravel() 把2D降維成1D
y剛好在最後一欄比較好切片
若沒在最後一欄,
原本的drop比較好用
“””
from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest =\
train_test_split(x,y,test_size=0.3,
random_state=42,shuffle=True)
print(“The shpae of training data(X axis):”,xtrain.shape)
print(“The shpae of training data(Y axis):”,ytrain.shape)
print(“The shpae of testing data(X axis):”,xtest.shape)
print(“The shpae of testing data(Y axis):”,ytest.shape)


506*0.3 = 152 (test_size=0.3)
506-152 = 354
改用iloc做切片
.ravel() 將2D降維成1D

實測random_state跟shuffle參數:

若真的需要都次取的都不一樣
random_state = None
shuffle = True
其他組合每次都會
取出一樣的samples
每次都一樣,
會比較容易debug
或判斷模型的優劣
random_state設了一樣的種子
shuffle = True也無效
每次都會取出一樣的資料
第四個組合
random_state = None
shuffle = False
沒種子,沒洗牌
為什麼每次都一樣?
from官網:

在 train_test_split 函數中,random_state 和 shuffle 參數看似相似但實際功能不同。
shuffle 參數
shuffle 是一個布爾值參數,控制是否要在分割前對數據進行隨機打亂:
- 類型:True/False
- 默認值:True
- 作用:決定是否打亂原始數據順序
- 何時設為 False:處理時間序列數據時,希望保持數據的時間順序
random_state 參數
random_state 控制如何進行隨機打亂:
- 類型:整數、None 或 RandomState 實例
- 默認值:None
- 作用:設定隨機種子,控制數據的打亂方式
- 意義:確保實驗可重複性和結果穩定性
兩者關係
-
當 shuffle=True 時,random_state 發揮作用:
- random_state=42(或任何固定值):每次運行結果相同
- random_state=None:每次運行結果不同
-
當 shuffle=False 時,random_state 不起作用,因為不需要打亂數據
實例對比
在需要結果可重複的情況下,應固定 random_state 的值。
推薦hahow線上學習python: https://igrape.net/30afN
波士頓地區房價:



boston (整齊版):

boston(排版較亂): http://lib.stat.cmu.edu/datasets/boston

要如以下才能拼接回資料

import pandas as pd
import numpy as np
url = r”http://lib.stat.cmu.edu/datasets/boston”
dfBoston = pd.read_csv(url,sep= “\s+” ,skiprows=22,header=None)
#正則表示法, 一個以上的空白或Tab
x=np.hstack( [ dfBoston.values[::2,:],dfBoston.values[1::2,:2] ] )
y=dfBoston.values[1::2,2]

x:

部分y:

y.shape

推薦hahow線上學習python: https://igrape.net/30afN
![Python: 如何創建多層column name的pandas.DataFrame? df = pd.read_csv (‘data.csv’, header=[0, 1], sep=”,”) ; col = pd .MultiIndex .from_arrays( aryCol ) Python: 如何創建多層column name的pandas.DataFrame? df = pd.read_csv (‘data.csv’, header=[0, 1], sep=”,”) ; col = pd .MultiIndex .from_arrays( aryCol )](https://i0.wp.com/savingking.com.tw/wp-content/uploads/2023/03/20230314164119_32.png?quality=90&zoom=2&ssl=1&resize=350%2C233)
![Python 進階實戰:深入 Word 核心,挖出那一坨 BLOB (含自省 Debug 技巧, BLOB= Binary Large Object) ; part = doc.part.rels[rid].target_part ; return part.blob if “ImagePart” in type(part).__name__ else None Python 進階實戰:深入 Word 核心,挖出那一坨 BLOB (含自省 Debug 技巧, BLOB= Binary Large Object) ; part = doc.part.rels[rid].target_part ; return part.blob if “ImagePart” in type(part).__name__ else None](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2026/01/20260126111046_0_cd8751.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

![Python: pandas.read_excel(r”路徑\檔名.副檔名”, header = None), 自動加上0,1…的欄標籤, DataFrame如何取某一直欄或橫列? 如何用 .iloc[bool_list] 取出判斷式為真的那一列? bool_list = list( df[0] == 0 ) ; bool_list = list(df[0].isin([0])) ; DataFrame如何顯示完整的資料? pandas.set_option ( “display.max_rows”, None) Python: pandas.read_excel(r”路徑\檔名.副檔名”, header = None), 自動加上0,1…的欄標籤, DataFrame如何取某一直欄或橫列? 如何用 .iloc[bool_list] 取出判斷式為真的那一列? bool_list = list( df[0] == 0 ) ; bool_list = list(df[0].isin([0])) ; DataFrame如何顯示完整的資料? pandas.set_option ( “display.max_rows”, None)](https://i0.wp.com/savingking.com.tw/wp-content/uploads/2022/11/20221128164005_44.png?quality=90&zoom=2&ssl=1&resize=350%2C233)




![Python Pandas GroupBy 的 size 陷阱:為什麼你的計數結果總是不對?如何計算重複次數? duplicates = df.duplicated( subset = [‘name’] ) Python Pandas GroupBy 的 size 陷阱:為什麼你的計數結果總是不對?如何計算重複次數? duplicates = df.duplicated( subset = [‘name’] )](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2025/06/20250609143758_0_53821c.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

近期留言