将 numpy 数组的索引映射到展平向量中相应索引的公式?
Formula that maps the index of a numpy array to the corresponding index in the flattened vector?
如题所示,将numpy数组的索引映射到展平向量中的相应索引的公式是什么?
举个具体的例子:
np.random.seed(2021)
X = np.random.normal(size=(5,4,3))
x = X.flatten(order='C')
ix = (1,2,2)
计算索引 i
使得 x[i]
returns 与 X[ix]
的值相同的公式是什么?理想情况下,同样的公式也适用于高阶张量。
您可以创建一个函数,根据 X
中值的相对位置重新调整部分索引购买将数组和行数乘以 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')
x[calculate_index(X, ix[0]) + calculate_index(X[0], ix[1]) + ix[2]]
X, ix[0]
将根据列表数 (5) 给出相对索引。
X[0], ix[1])
将根据列表 (4) 中的行数给出相对索引。
ix[2]
将给出该行的相对索引。
ix = (1, 2, 2)
print(X[ix])
# -0.720158835135297
print(x[calculate_index(X, ix[0]) + calculate_index(X[0], ix[1]) + 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
如题所示,将numpy数组的索引映射到展平向量中的相应索引的公式是什么?
举个具体的例子:
np.random.seed(2021)
X = np.random.normal(size=(5,4,3))
x = X.flatten(order='C')
ix = (1,2,2)
计算索引 i
使得 x[i]
returns 与 X[ix]
的值相同的公式是什么?理想情况下,同样的公式也适用于高阶张量。
您可以创建一个函数,根据 X
中值的相对位置重新调整部分索引购买将数组和行数乘以 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')
x[calculate_index(X, ix[0]) + calculate_index(X[0], ix[1]) + ix[2]]
X, ix[0]
将根据列表数 (5) 给出相对索引。
X[0], ix[1])
将根据列表 (4) 中的行数给出相对索引。
ix[2]
将给出该行的相对索引。
ix = (1, 2, 2)
print(X[ix])
# -0.720158835135297
print(x[calculate_index(X, ix[0]) + calculate_index(X[0], ix[1]) + 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