如何使用python中的列表切片2d矩阵?

时间:2018-05-01 15:25:53

标签: python arrays numpy indexing

在这个例子中:

In [19]: a[[1,2,3],[1,2,3]].shape
Out[19]: (3,)

In [20]: a[1:4,1:4].shape
Out[20]: (3, 3)

In [21]: a.shape
Out[21]: (100, 100)

为什么Out [19]不是(3,3)? 我想使用list的原因是因为我想做这样的事情:

a[[1,8,12],[34,45,50]].shape

因此结果将是(3,3)矩阵。

1 个答案:

答案 0 :(得分:3)

np.ix_的完美用例:

a[np.ix_([1,8,12],[34,45,50])]

<强>演示

a = np.arange(5 * 5).reshape(5, 5)    
a[np.ix_([1, 2, 3], [1, 2, 3])]

array([[ 6,  7,  8],
       [11, 12, 13],
       [16, 17, 18]])