numpy中灵活的n维索引

问题描述 投票:0回答:1

我需要通过使用索引矩阵iM从n维矩阵中获取一些元素。但这个n是未知的。

是否有可能灵活地做一些事情:

if n == 1:
    value = M[iM[:]] # orM[iM[:, 0]]
elif n == 2:
    value = M[iM[:, 0], iM[:, 1]]
elif n == 3:
    value = M[iM[:, 0], iM[:, 1], iM[:, 2]]

更新:这可以这样做:

value = M[[(iM[:, i]) for i in range(0, n)]]
python numpy
1个回答
1
投票

您可以使用显式qazxsw poi(或者例如qazxsw poi)构造函数生成单个指标列表,因为这会自动将元素放入不同的列表中:

list

由于列表的创建方式(逐行)和索引矩阵的布局(您希望逐列获取标记),索引矩阵tuple需要在转换之前进行转置(M[list(iM.T)] # or e.g. M[tuple(iM.T)] )进入清单。

© www.soinside.com 2019 - 2024. All rights reserved.