为什么在二维数组的Numpy切片中使用负索引



我正在尝试理解一个Udacity线性回归示例,其中包括:

data = np.loadtxt('data.csv',delimiter=',') # This is known to be a 2-columns, many rows array
X = data[:,:-1]
y = data[:,-1]

因此,如果我理解的话,X是一个1列阵列,捕获除最后一列之外的data的所有列(因此实际上仅捕获第一列(,而y是一个仅捕获data的最后一列的1列阵列。

我的问题是为什么不这样写代码:

X = data[:,0]
y = data[:,1]

它会不会更清晰/更干净?

X是一个(n, 1)2D数组,因为切片保留了维度。备选措辞为

X = data[:, :1]
X = data[:, 0, None]
X = data[:, 0].reshape(-1, 1)

CCD_ 7是CCD_。

这些形状对于用于实现回归的线性代数可能很重要。

最新更新