numpy matlab 索引不同,与Numpy相似的MATLAB数组索引

参见英文答案 >

Subsetting a 2D numpy array                                    4个

在MATLAB和Numpy中,数组可以由数组索引.但是,行为是不同的.让我以一个例子来解释一下.

MATLAB:

>> A = rand(5,5)

A =

0.1622 0.6020 0.4505 0.8258 0.1067

0.7943 0.2630 0.0838 0.5383 0.9619

0.3112 0.6541 0.2290 0.9961 0.0046

0.5285 0.6892 0.9133 0.0782 0.7749

0.1656 0.7482 0.1524 0.4427 0.8173

>> A([1,3,5],[1,3,5])

ans =

0.1622 0.4505 0.1067

0.3112 0.2290 0.0046

0.1656 0.1524 0.8173

NumPy的:

In [2]: A = arange(25).reshape((5,5))

In [3]: A

Out[3]:

array([[ 0, 1, 2, 3, 4],

[ 5, 6, 7, 8, 9],

[10, 11, 12, 13, 14],

[15, 16, 17, 18, 19],

[20, 21, 22, 23, 24]])

In [6]: A[[0,2,4], [0,2,4]]

Out[6]: array([ 0, 12, 24])

简单来说:MATLAB选择行和列,Numpy“拉链”两个索引数组,并使用元组指向条目.

如何使用Numpy获取MATLAB的行为?