MATLAB和Python:取指定行和列的元素

作者: 高正杰 | 来源:发表于2017-12-22 15:14 被阅读4次

    基本的切片操作不再讲解。可以任意百度搜索一片博文即可得到你想要的答案。废话不多说,看例子:


    MATLAB

    >>> A = reshape(randperm(25),[5,5])
    
    A = 
    
         3     8     6     7    19
        16    22    24     1    13
        17    20     4    12    23
         2    10    11     9    14
        25    18    15    21     5
    
    >>> row = [1,3,5];
    >>> col = [2,4,5];
    >>> A(row,col)
    
    ans = 
    
         8     7    19
        20    12    23
        18    21     5
    

    Python

    >>> import numpy as np
    >>> A = np.random.permutation(25).reshape((5,5))
    array([[ 6,  4, 13, 18, 16],
           [ 9, 10, 12, 22, 19],
           [ 1, 15, 17,  7,  0],
           [11,  3, 23, 24,  2],
           [ 8, 20, 14,  5, 21]])
    >>> row = [0,2,4]
    >>> col = [1,3,4]
    

    Python中第一种情况:

    >>> A[row,col]
    array([ 4,  7, 21])
    

    我们可以看出,它是将前后两个列表位置一一对应(如图所示),构成了坐标进行取值。第一个列表代表行标,第二个列表代表列标。


    Python中第二种情况:

    >>> A[row,:][:,col]
    array([[ 4, 18, 16],
           [15,  7,  0],
           [20,  5, 21]])
    

    可以看出,第二种情况就和MATLAB是一样的了。取指定的行和指定的列的所有交叉元素,如下图所示。




    该文章于2017年5月20日于CSDN上首次发表,2017年12月22日搬家至此!

    相关文章

      网友评论

        本文标题:MATLAB和Python:取指定行和列的元素

        本文链接:https://www.haomeiwen.com/subject/hexxgxtx.html