Yanwei Liu
3 min readFeb 13, 2025

--

程式碼解析:

X = dataset[:, 0:13]

這段程式碼是在 Python 中用於處理數據集時進行資料切割(slicing)的常見寫法。

讓我們逐步分解:

dataset: 這假設 dataset 是一個 NumPy 陣列(或類似的二維資料結構,如 Pandas DataFrame 的一部分)。它代表你的整個數據集,其中包含了多個樣本(列)和特徵(欄)。

[] (中括號): 中括號用於對 NumPy 陣列進行索引和切片操作。

: (分號): 在 NumPy 切片中,單獨的冒號 : 表示「選擇該維度的所有元素」。

0:13: 這部分指定了另一個維度(通常是欄)的切片範圍:

0: 起始索引(包含)。表示從第 0 欄開始。

13: 結束索引(不包含)。表示到第 13 欄為止,但不包括第 13 欄。

整體含義:

這行程式碼的目的是從 dataset 中提取一個子集,並將其賦值給變數 X。這個子集包含:

所有列(樣本): 因為第一個維度使用了 :,表示選擇所有列。

第 0 到 12 欄(特徵): 因為第二個維度使用了 0:13,表示選擇索引為 0 到 12 的欄(總共 13 欄)。

換句話說: 這段程式碼通常用於將數據集的前 13 個特徵提取出來,作為模型的輸入特徵 (X)。

舉例說明:

假設 dataset 是一個 5x15 的 NumPy 陣列(5 列、15 欄):

dataset = np.array([

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],

[16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],

[31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45],

[46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60],

[61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75]

])

執行 X = dataset[:, 0:13] 後,X 將變成:

X =

[[ 1 2 3 4 5 6 7 8 9 10 11 12 13]

[16 17 18 19 20 21 22 23 24 25 26 27 28]

[31 32 33 34 35 36 37 38 39 40 41 42 43]

[46 47 48 49 50 51 52 53 54 55 56 57 58]

[61 62 63 64 65 66 67 68 69 70 71 72 73]]

總結:

::選擇所有列。

0:13:選擇從第0欄到第12欄(不包括第13欄)。

這種切片方式是數據預處理中非常常見的操作,用於分離特徵和目標變數,或者選擇特定的特徵子集進行分析或建模。

--

--

No responses yet