Python3——數組 “切片” 遇到的坑~

在機器學習的有監督學習中,常常要把數據分爲“特徵列”和“標籤列”,標籤列往往在最後一列,可以用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]]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章