我是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中的示例,但没有一个回答我的问题。
最佳答案
按照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
注释中所示。关于python - 在Python中访问数组中的几列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37977013/