Python3 陣列 「切片」 遇到的坑

2021-09-05 11:42:03 字數 1324 閱讀 7209

在機器學習的有監督學習中,常常要把資料分為「特徵列」和「標籤列」,標籤列往往在最後一列,可以用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]]

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...

python3 切片 七 python3 切片

切片 取乙個 list 或 tuple 的部分元素是非常常見的操作 l michael sarah tracy bob jack 笨辦法 之所以是笨辦法是因為擴充套件一下,取前 n 個元素就沒轍了。l 0 l 1 l 2 michael sarah tracy 取前 n 個元素,也就是索引為 0 n...

python 3 切片練習

coding gbk def qipian a,a 1,a 2,a 3,a 4 map int,input 輸入a,a 1,a 2,a 3,a 4 空格隔開 split a,a 1,a 2,a 3,a 4為int型 b a,a 1,a 2,a 3,a 4 print b c b 0 3 2 取出列表...