在Python中访问数组中的多个列

时间:2016-06-22 19:48:47

标签: python arrays numpy

我是python和numpy的新手。假设我有一个数组A = np.random.rand(10,100),我如何轻松访问它的一些列?

Matlab我会写B = A(:,[2,4,6:10,50:80])之类的东西。 Python中这行代码的等价物是什么?

我查看了http://scipy.github.io/old-wiki/pages/NumPy_for_Matlab_Users.html中的示例,但没有一个回答我的问题。

1 个答案:

答案 0 :(得分:2)

正如Benjamin建议的那样,np.r_处理这样的表达式

In [1329]: np.r_[2,4,6:10,50:80]
Out[1329]: 
array([ 2,  4,  6,  7,  8,  9, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
       61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
       78, 79])

可以用作:

B = A[:, np.r_[2,4,6:10,50:80]]

r_将切片扩展为范围并将所有内容连接在一起,如Divakar's注释。