python - 获取 numpy 数组中第 k 个维度的第 i 个切片

标签 python arrays numpy

我有一个 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/

相关文章:

python - Mongoose Schemas 和通过 python 插入

javascript - 如何从node.js中的二维数组中获取随机项

javascript - 是否可以将值从数组添加到对象属性?

python - 如何消除 NumPy 特征向量分量的复杂角度的不连续性?

python - 根据对角线对 numpy 矩阵进行排序

python - 简单奇怪的基本Python行为

python - 如何警告我潜在的 NameError?

C 空字符导致程序行为出现问题

python - (A, B) 和 (C,) 之间的 Minkowski 距离

python - 如何将带有数字的Python数据帧列导出为带有逗号分隔符的整数,并能够对它们进行求和/除法/乘法?