Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 组合步骤_Python_Performance_Numpy_Scipy - Fatal编程技术网

Python 组合步骤

Python 组合步骤,python,performance,numpy,scipy,Python,Performance,Numpy,Scipy,有没有办法将这些步骤结合起来,这样我就可以通过减少迭代次数来提高效率 first_cut_new=first_cut-res first_cut_depth[first_cut_depth>min_value+150]=0 first_cut_depth[first_cut_depth>0]=1 first_cut_depth_3D=np.dstack((first_cut_depth,first_cut_depth,first_cut_depth)) first_cut_final

有没有办法将这些步骤结合起来,这样我就可以通过减少迭代次数来提高效率

first_cut_new=first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_depth_3D=np.dstack((first_cut_depth,first_cut_depth,first_cut_depth))
first_cut_final= first_cut_depth_3D * first_cut_new
方法#1

在我看来,效率低下似乎是在最后两步。因此,可以避免创建
first\u cut\u depth\u 3D
,而使用动态数据复制和元素相乘来实现
first\u cut\u final
,就像这样-

first_cut_new = first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_final = first_cut_depth[...,None]*first_cut_new
first_cut_final = (first_cut_depth <= min_value+150)[...,None]*(first_cut-res)

方法#2(适用于RGB输入阵列)

如果
first\u cut\u depth
假定为RGB图像数据,则它将仅具有正值。因此,我们可以利用它来获得更有效的单线性解决方案,就像这样-

first_cut_new = first_cut-res
first_cut_depth[first_cut_depth>min_value+150]=0
first_cut_depth[first_cut_depth>0]=1
first_cut_final = first_cut_depth[...,None]*first_cut_new
first_cut_final = (first_cut_depth <= min_value+150)[...,None]*(first_cut-res)

first_cut_final=(first_cut_depth)所涉及的输入形状是什么?first_cut-(600600,3);res-(600600,3);depth(600600)你能分享你的代码吗?直到你所做的。first_cut和res基本上是600 x 600 RGB图像,其中as depth是3D传感器图像的深度矩阵first_cut_depth[first_cut_depth>min_value+150]=0 first_cut_depth[first_cut_depth>0]=1@user4543816我会保留这些。这些看起来不是我的瓶颈。@user4543816也检查一下刚才添加的第二种方法!只是为了澄清第一个切面深度是深度数据而不是RGB数据。第一个切面是RGBdata@user4543816
first\u cut\u depth
是否为负值?如果不是,则第二种方法可行。
first\u cut\u depth只需为正值,而不必为RGB。