在機器學習的有監督學習中,常常要把數據分爲“特徵列”和“標籤列”,標籤列往往在最後一列,可以用data[:, -1] 或 data[:, cols-1:cols]進行切片。這個時候需要特別注意:對數組來說 得到的結果是不同的,前者將最後一列轉爲一行,後者是列,對矩陣來說得到的結果是相同的,都是列。
具體如下:
import numpy as np
data = np.array([[1, 2, 3], [3, 4, 5], [6, 43, 5]])
cols = data.shape[-1]
print('對數組進行切片'.center(20, '*'))
print('原始數組數據\n', data)
print('數組:-1 切片\n', data[:, -1])
print('數組:cols-1:cols 切片\n', data[:, cols-1:cols])
print('對數矩陣行切片'.center(20, '*'))
print('原始矩陣數據\n', np.mat(data))
print('矩陣:-1 切片\n', np.mat(data)[:, -1])
print('矩陣:cols-1:cols 切片\n', np.mat(data)[:, cols-1:cols])
結果如下:
******對數組進行切片*******
原始數組數據
[[ 1 2 3]
[ 3 4 5]
[ 6 43 5]]
數組:-1 切片
[3 5 5]
數組:cols-1:cols 切片
[[3]
[5]
[5]]
******對數矩陣行切片*******
原始矩陣數據
[[ 1 2 3]
[ 3 4 5]
[ 6 43 5]]
矩陣:-1 切片
[[3]
[5]
[5]]
矩陣:cols-1:cols 切片
[[3]
[5]
[5]]