给定一个N维正方形(立方体等(numpy数组n
和一个索引列表l
,我希望函数返回n[l[0]][l[1]]...[l[N-1]]
例如:
如果
n = [[0,1,2],
[3,4,5],
[6,7,8]]
和
l = [1,1]
操作
f(n,l) = 4
或者如果
n = [[[0,1],
[2,3]],
[[4,5],
[6,7]]]
和
l = [1,0,1]
操作
f(n,l) = 5
如有任何帮助,我们将不胜感激。我正在尝试制作一个代码,在这里我可以改变模拟的维度,而不必为不同的维度重新编码一些新的东西。
在我看来,您只需要numpy就可以完成这项工作。使用n
的示例,您可以进行
n =np.array( [[0,1,2],
[3,4,5],
[6,7,8]])
l = (1,1)
n[l]
注意,l
需要是一个元组(圆括号(。您可以将您的列表转换为
l = [1,1]
n[tuple(l)]
只需将数组转换为元组:
import numpy as np
def f(n, i):
return n[tuple(i)]
print(
f(
np.arange(0, 9).reshape((3, 3)),
np.array([1, 1])
)
)
print(
f(
np.arange(0, 8).reshape((2, 2, 2)),
np.array([1, 0, 1])
)
)
输出:
4
5
请参阅:将元组/数组/列表解压缩为Numpy arrays 的索引