【发布时间】:2021-11-03 14:26:30
【问题描述】:
@classmethod
def attribute_filter(
cls,
struct_arr: np.ndarray,
attr: str,
lb: Union[int, float, np.number, type(None)] = None,
ub: Union[int, float, np.number, type(None)] = None,
mode: str = 'fill'
):
if lb is None:
lb = struct_arr[attr].min()
if ub is None:
ub = struct_arr[attr].max()
cond1 = (struct_arr[attr] >= lb)
cond2 = (struct_arr[attr] <= ub)
print(cond1, cond2) # Prints as expected
condition = np.logical_and(x1=cond1, x2=cond2) # Fails
...
...
我有classmethod,如上图所示。此方法正在多处理环境中使用。执行后我得到:
condition = np.logical_and(x1=cond1, x2=cond2)
TypeError: logical_and() takes from 2 to 3 positional arguments but 0 were given
造成这种情况的合理原因是什么?我该如何解决这个问题?
【问题讨论】:
标签: python numpy multiprocessing