【发布时间】:2021-07-05 13:57:23
【问题描述】:
我有一个形状为 (6, 2000, 2) 的 numpy 数组 t_i。 如果该行下方该切片中的所有元素都是-1,我需要从数组中删除列切片。 假设我在 t_i 的第 i 行。现在对于第 i 行下方的那些列,其中列中的每个元素都是 [-1,-1],我需要从 t_i 中删除完整的列切片。
我试过这个:
t_iF = t_i[:, t_i[i+1:] != -1]
但我收到此错误:
IndexError: 数组索引过多:数组是 3 维的,但是 4 被索引了
请大家指出正确的方向吗?谢谢!
更新: 设 t_i 为:
t1=np.arange(32).reshape(4,4,2)
t1[1:,[1,3]] = -1
在这种情况下,需要删除整个 1 和 3 列切片。
【问题讨论】:
-
请看:
t_i[i+1:] != -1。这会给你一个线索。 -
您的描述不清楚。请添加源数据示例和预期结果。另一个问题是您的代码看起来很像伪代码,例如i 的值未知。
-
@adr, yes t_i[i+1:] != -1 返回一个 3D 张量,而我只需要满足不等式的列索引。你能建议我怎么做吗?谢谢!
-
我正在尝试添加一个。实际上,我需要通过循环进行此更新(即对 i 的值范围执行此步骤)。所以我在一个范围内变化。谢谢!
-
定义输入和输出以配合散文。