如何修改Python中两列表按位AND运算函数以支持任意多输入参数
实现方案
直接使用*args接收任意数量的输入列表,配合numpy自带的np.bitwise_and.reduce方法实现多数组按位累积与运算,修改后的代码如下:
import numpy as np def and_op(*args): # 沿第0维度对所有输入数组做累积按位与运算 return np.bitwise_and.reduce(np.array(args), axis=0)
验证测试
- 兼容原有双参数调用:
and_op([0,0,1,1,0], [1,0,1,1,1])
输出结果和原有实现完全一致:
array([0, 0, 1, 1, 0])
- 多参数调用测试:
and_op([0,1,1,0], [1,1,0,1], [1,1,1,0], [0,1,0,1])
输出结果:
array([0, 1, 0, 0])
原理解释
np.bitwise_and.reduce会对输入的数组序列沿着指定维度(此处指定axis=0为按输入列表的维度)迭代执行按位与运算,最终返回每一位所有输入值做按位与后的结果,自动支持任意数量的等长列表输入。
内容的提问来源于stack exchange,提问作者lilxy
相关产品推荐
相关产品推荐

