Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在给定条件下从numpy数组中删除切片_Python_Arrays_Numpy - Fatal编程技术网

Python 在给定条件下从numpy数组中删除切片

Python 在给定条件下从numpy数组中删除切片,python,arrays,numpy,Python,Arrays,Numpy,我有一个形状为(620000,2)的numpy数组t_I。 如果该行下面该切片中的所有元素都是-1,则需要从数组中删除列切片。 让我们假设我在第I排。现在,对于第I行下面的列,其中列中的每个元素都是[-1,-1],我需要从t_I中删除完整的列切片 我试过这个: t_iF = t_i[:, t_i[i+1:] != -1] 但我得到了这个错误: 索引器:数组的索引太多:数组是三维的,但为4 索引 你们能给我指一下正确的方向吗?谢谢 更新: 让我来: t1=np.arange(32).reshap

我有一个形状为(620000,2)的numpy数组t_I。 如果该行下面该切片中的所有元素都是-1,则需要从数组中删除列切片。 让我们假设我在第I排。现在,对于第I行下面的列,其中列中的每个元素都是[-1,-1],我需要从t_I中删除完整的列切片

我试过这个:

t_iF = t_i[:, t_i[i+1:] != -1]
但我得到了这个错误:

索引器:数组的索引太多:数组是三维的,但为4 索引

你们能给我指一下正确的方向吗?谢谢

更新: 让我来:

t1=np.arange(32).reshape(4,4,2)
t1[1:,[1,3]] = -1
在这种情况下,需要删除整个1列和3列切片。

对于以下任务非常有用:

将numpy导入为np
t1=np.arange(32)。重塑(4,4,2)
t1[1:,[1,3]=-1
t_filtered=t1[:,[np.any(t1[i,i:]!=-1)用于范围内的i(t1.shape[0]),:]
打印(t_过滤的形状)#(4,3,2)

看:
tui[i+1:]-1
。这会给你一个线索。你的描述不清楚。请添加源数据和预期结果的示例。另一个问题是,您的代码看起来很像伪代码,例如i的值未知。@adr,是的t_i[i+1:]!=-1返回一个3D张量,而我只需要满足不等式的列索引。你能建议我怎么做吗?谢谢我想补充一点。实际上,我需要在一个循环中执行此更新(即,对I的值范围执行此步骤)。所以我在一个范围内变化。谢谢定义、输入和输出以配合散文。嗨@Stefan谢谢你的帮助。实际上它的t1[1:,[1,3]=-1,所以我们没有将整个列切片设置为-1,而是将该切片中特定行下面的所有元素设置为-1。问题描述仍然有些不清楚。我现在已经更新了答案,希望这就是你需要的。