2016-08-24 95 views
0

我已经在MATLAB中创建了一个m乘n的矩阵,并且可以轻松地在某个列和行内选择一个范围的值。例如,如果我有矩阵A:通过键入从第一列1,5和9::Matlab到Python数组的逻辑难度

A = 

0  0  0  0 
1  2  3  4 
5  6  7  8 
9 10 11 12 

我可以隔离值A(2:4,1)。结果将产生[1;5;9]。因为它涉及到python,我不知道如何索引一个数组,使得我有如上所需的值。

+3

阵列索引开始这是一个numpy的阵列?如果是这样,它就像在Matlab中一样简单。如果没有,你有没有考虑使用numpy数组呢? 'np.asarray(X)'。查看[this](http://docs.scipy.org/doc/numpy/user/basics.indexing.html)。 –

+0

不知道为什么我不认为这会起作用,但确实如此。我想我对python使用的不同索引技术感到困惑。例如,如果我想从矩阵A中分离出9,我会输入A(4,1),但是在Python中,我可以输入A [3,0]或A [3] [0]。我想我更喜欢哪种技术在什么情况下使用。 – ColeS

回答

0

这可以使用numpy的

a = numpy.matrix('0 0 0 0; 1 2 3 4; 5 6 7 8; 9 10 11 12')

所需的结果是a[1:,0]a[1:4,0]进行

唯一的区别是从0而不是1。

+0

你应该使用numpy数组而不是numpy矩阵。 Python社区已经围绕数组进行了标准化,所以他们的支持更加广泛,并且对于几乎所有的使用情况,尤其是现在他们有一个矩阵乘法运算符,它们的工作效率更高。 – TheBlackCat