首页 > 解决方案 > 如何在python中删除数组的最后一列

问题描述

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

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

我试过了

a[-1:]

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

我也试过

a[:-1]

它删除了最后一行。

如何删除最后一列?

标签: pythonnumpy

解决方案


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

试试这个:

arr = a[:, :-1] #--> first two columns of array

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

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


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

arr = np.delete(a, -1, axis=1) # --> returns new array

输出>>> arr

[['A1' 'A2']
 ['B1' 'B2']
 ['C1' 'C2']]

推荐阅读