如何在python中删除数组的最后一列

asm*_*mgx 1 python numpy

我的数组大小未知,我想删除最后一列

a = np.array([["A1","A2","A3"],["B1","B2","B3"],["C1","C2","C3"]])
Run Code Online (Sandbox Code Playgroud)

我试过了

a[-1:]
Run Code Online (Sandbox Code Playgroud)

但它删除了除最后一行之外的所有行

我也试过

a[:-1]
Run Code Online (Sandbox Code Playgroud)

它删除了最后一行。

如何删除最后一列?

Shu*_*rma 5

我建议你阅读有关文档的基本切片和索引numpy数组。

尝试这个:

arr = a[:, :-1] #--> first two columns of array
Run Code Online (Sandbox Code Playgroud)

注1:arr切片操作 的结果数组只是原始数组内部的一个视图a,没有创建副本。如果您更改 中的任何实体arr,此更改也将在数组中传播,a反之亦然。

例如, 更改 的值arr[0, 0]也会更改 的相应值a[0, 0]


注意 2:如果要创建一个新数组,同时删除最后一列以便一个数组中的更改不应该在另一个数组中传播,则可以使用numpy.deletewhich返回一个新数组,其中沿删除了一个轴的子数组。

arr = np.delete(a, -1, axis=1) # --> returns new array
Run Code Online (Sandbox Code Playgroud)

的输出>>> arr

[['A1' 'A2']
 ['B1' 'B2']
 ['C1' 'C2']]
Run Code Online (Sandbox Code Playgroud)