【问题标题】:Accessing the j-th dimension of an n-dimensional matrix in python在python中访问n维矩阵的第j维
【发布时间】:2018-12-25 06:36:13
【问题描述】:

给定:

  • 一个整数输入 j,d 使得 0

  • 整数向量 -1

  • d 维矩阵(即张量)T 作为 numpy 数组

我想阅读某些取决于整数 j 的信息。

例如,

  c[1]>u[,1]

我想访问

  T[(a[0]):(b[0]),...,(a[j]-1):(b[j]+1),...,(a[n-1]):(b[n-1])]

我想知道是否有一种通用的方法可以做到这一点,尤其是在 d 和 j 可以是可变的情况下。

可以在这里找到类似的问题: Access n-th dimension in python.

【问题讨论】:

  • 构造一个索引元组,如您的链接接受的答案所示。使用slice 对象。如果它更容易从列表或数组开始,并在使用前转换为元组。

标签: python numpy multidimensional-array indexing dimensions


【解决方案1】:

从切片构造索引元组:

In [88]: a = [1,0,4]; b = [4,1,None]
In [89]: idx = [slice(i,j) for i,j in zip(a,b)]
In [90]: idx
Out[90]: [slice(1, 4, None), slice(0, 1, None), slice(4, None, None)]
In [91]: arr = np.arange(5*3*7).reshape(5,3,7)
In [92]: arr[tuple(idx)]
Out[92]: 
array([[[25, 26, 27]],

       [[46, 47, 48]],

       [[67, 68, 69]]])
In [93]: _.shape
Out[93]: (3, 1, 3)

【讨论】:

    猜你喜欢
    • 2018-01-09
    • 2013-06-23
    • 1970-01-01
    • 2011-04-03
    • 2019-11-13
    • 2014-05-21
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多