我是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中的示例,但没有一个回答我的问题。
答案 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
注释。