【问题标题】:Access numpy matrix element using list of unknown length使用未知长度列表访问 numpy 矩阵元素
【发布时间】:2014-02-07 15:36:56
【问题描述】:

所以我有一个未知维度的 numpy.array,我生成了一个索引列表,以便访问矩阵中的特定元素。

如果我知道它是一个 3x3 矩阵,我会简单地访问:

A[1,2,3]

或类似的东西。但是,我将 [1,2,3] 生成为列表,然后需要使用该列表访问矩阵元素。如果我这样做了

A[List]

本质上是这样做的

A[[1,2,3]]

我显然只是从第一维的 1,2,3 元素中得到切片

有什么想法吗?

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    把你的列表变成一个元组:

    >>> A = np.arange(2*3*4).reshape(2,3,4)
    >>> A
    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]]])
    >>> A[1,2,3]
    23
    >>> A[(1,2,3)]
    23
    >>> b = [1,2,3]
    >>> A[tuple(b)]
    23
    

    【讨论】:

    • 感谢您的快速回复......我以为我已经尝试过了,但显然没有!
    【解决方案2】:

    将列表转换为元组。然后它工作正常。

    >>> A = np.array([[1,2,3],[4,5,6],[7,8,9]])
    >>> A
    array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])
    >>> A[1, 2]
    6
    >>> indices = [1,2]
    >>> A[indices]
    array([[4, 5, 6],
           [7, 8, 9]])
    >>> A[tuple(indices)]
    6
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多