删除numpy数组中的列范围
Posted
技术标签:
【中文标题】删除numpy数组中的列范围【英文标题】:Remove range of columns in numpy array 【发布时间】:2016-06-06 05:07:42 【问题描述】:我有一个数组:
e = np.array([[ 0, 1, 2, 3, 4, 7, 4],
[ 4, 5, 6, 7, 2, 3, 1],
[ 8, 9, 10, 11, 3, 5, 7]])
我想删除从第 1 列到第 3 列的列范围,所以它应该返回:
e = np.array([[ 0, 4, 7, 4],
[ 4, 2, 3, 1],
[ 8, 3, 5, 7]])
我见过一些解决方案,但是他们通过索引删除特定列,而不是在范围内,如何解决?谢谢
【问题讨论】:
【参考方案1】:e = np.array([[ 0, 1, 2, 3, 4, 7, 4],
[ 4, 5, 6, 7, 2, 3, 1],
[ 8, 9, 10, 11, 3, 5, 7]])
np.delete(e, [1,3], axis=1)
>>>array([[ 0, 2, 4, 7, 4],
[ 4, 6, 2, 3, 1],
[ 8, 10, 3, 5, 7]])
【讨论】:
解决它使用:np.delete(e,np.s_[1:3],axis=1) 它将删除范围 1 到 3 中的列。【参考方案2】:解决了这个问题:
np.delete(e,np.s_[1:3],axis=1)
它将删除范围 1 到 3 中的列。
【讨论】:
哇。太棒了! 基本上就是我写的。惊人的。 \s 不,@seanmus ...基本上不是你写的。这是关于删除 范围 列(从 1 到 3),而不是专门删除第 1 列和第 3 列。答案中缺少的np.s_
是其中最重要的部分。仅“使用np.s_
”的答案会比“使用np.delete
”更有帮助(就像你的答案)以上是关于删除numpy数组中的列范围的主要内容,如果未能解决你的问题,请参考以下文章