在numpy python中沿轴应用逻辑和/或操作

问题描述

我有一个形状为 (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 (将#修改为@)