微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 使用:用于列表或numpy数组中的多个切片

我在尝试弄清楚如何在列表中提取多个值时遇到一些困难.例如,给定一个列表l = [0,1,2,3,4,5,6,7,8,9,10],我想只提取值[1,2,3]和[6, 7,8,9].我能做到[1:4] l [6:-1],但有没有办法写l [1:4,6:-1]?

对于我在pandas数据帧中遇到的实际问题,这实际上是一个鬼问题.我有一个数据帧,df,列[‘A’,’B’,’C’,’I1′,’D’,’E’,’F’,’I2′,’I3′],我只有想要保留重要的列[‘I1′,’I2′,’I3’].现在,我正在做的当前方法

df.drop(df.columns [0:3],axis = 1,inplace = True)
df.drop(df.columns [4:7],轴= 1,inplace = True)

有没有办法做到这一点,我们可以在一行中完成,而无需明确写出列值?

谢谢!
PS.我知道pandas数据帧使用numpy,我也没有在numpy中找到任何变通方法,但我认为删除列的语法是标准的python列表格式,如果这有意义的话.

编辑:我找到了一种方法来做numpy,但它也是2行,从this question.我们可以这样做:
indices = np.hstack((np.arange(0:3),np.arange(4:7))
df.drop(df.columns [indices],axis = 1,inplace = True)

但是,我仍然在寻找1行广义方法.

解决方法:

我认为你需要numpy.r_的concanecate指数:

print (np.r_[1:4, 6:10])
[1 2 3 6 7 8 9]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐