问题描述
我有一个形状为 (h,w,c)
的 numpy 数组。我想沿通道应用逻辑和/或操作。有没有比下面的例子更简单的方法呢?我尝试使用 apply_over_axis() 函数,但我无法让它工作
例如:为简单起见,我将考虑一个二维数组。
import numpy
>>> a = numpy.arange(6).reshape(2,3) % 2 == 1
>>> a
array([[False,True,False],[ True,False,True]])
我想沿 and
应用 axis=1
操作以获得结果
array([False,False])
我可以得到它如下:
>>> a[:,0] & a[:,1] & a[:,2]
但是,有没有更简单的方法来做到这一点?我尝试使用 apply_over_axis() 函数如下
>>> numpy.apply_along_axis(numpy.logical_and,a,[1])
但我收到以下错误
Traceback (most recent call last):
File "<input>",line 1,in <module>
File "<__array_function__ internals>",line 5,in apply_along_axis
File "/home/nagabhushan/anaconda3/envs/11_VPTU_GPU/lib/python3.8/site-packages/numpy/lib/shape_base.py",line 361,in apply_along_axis
axis = normalize_axis_index(axis,nd)
TypeError: only integer scalar arrays can be converted to a scalar index
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)