我是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/

10-11 07:43
查看更多