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]]

猜你喜欢

转载自blog.csdn.net/Muzi_Water/article/details/85291725