如标题所示,将numpy数组的索引Map到展平向量中相应索引的公式是什么?作为一个具体例子:
np.random.seed(2021) X = np.random.normal(size=(5,4,3)) x = X.flatten(order='C') ix = (1,2,2)
计算指数的公式是什么 i 以致 x[i] 返回与相同的值 X[ix] ? 理想情况下,同样的公式也适用于高阶Tensor。
i
x[i]
X[ix]
gywdnpxw1#
您可以创建一个函数,该函数基于中的每个项重新调整部分索引 ix ,并将其相加
ix
def calculate_index(x, i): return x[0].size * i np.random.seed(2021) X = np.random.normal(size=(5, 4, 3)) x = X.flatten(order='C') ix = (1, 2, 2) print(X[ix]) # -0.720158835135297 print(x[calculate_index(X, ix[0]) + calculate_index(X, ix[1]) + calculate_index(X, ix[2])]) # -0.720158835135297 ix = (3, 3, 0) print(X[ix]) # 1.2242357215843627 print(x[calculate_index(X, ix[0]) + calculate_index(X[0], ix[1]) + ix[2]]) # 1.2242357215843627
1条答案
按热度按时间gywdnpxw1#
您可以创建一个函数,该函数基于中的每个项重新调整部分索引
ix
,并将其相加