我有一个 n
维的 numpy 数组,我想获取第 k
的第 i
切片方面。一定有比这更好的了
# ...
elif k == 5:
b = a[:, :, :, :, :, i, ...]
# ...
最佳答案
b = a[(slice(None),) * k + (i,)]
手动构造索引元组。
如 Python language reference 中所述, 形式的表达
a[:, :, :, :, :, i]
转换为
a[(slice(None), slice(None), slice(None), slice(None), slice(None), i)]
我们可以通过直接构建元组而不是使用切片符号来达到相同的效果。 (有一个小警告,构建元组直接生成 a[(i,)]
而不是 a[i]
for k=0
,但 NumPy 对标量 i
的处理方式相同。)
关于python - 获取 numpy 数组中第 k 个维度的第 i 个切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42817508/