You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对numpy.ndarray每一行内的所有元素执行XOR逻辑运算

实现方案

你可以直接用np.logical_xor的reduce方法沿行维度累积计算异或,全程是numpy向量化操作,效率极高,不需要写任何Python层循环:

import numpy as np

# 示例输入数组
arr = np.array([[0., 0., 0., 0.],
                [0., 1., 0., 0.],
                [0., 1., 0., 0.],
                [1., 0., 0., 1.],
                [1., 1., 1., 1.],
                [1., 1., 1., 1.]])

# 逐行计算所有元素异或,keepdims保持二维列向量格式
result = np.logical_xor.reduce(arr, axis=1, keepdims=True).astype(float)

运行后输出的result结构完全匹配你需要的格式:

array([[0.],
       [1.],
       [1.],
       [0.],
       [0.],
       [0.]])

其他可选方案

如果你能确认数组中只有0和1两种取值,也可以用统计行内1的个数模2的方式实现,逻辑上等价于逐位异或:

result = (arr.sum(axis=1, keepdims=True) % 2).astype(float)

说明

  • reduce方法的作用是将二元逻辑异或操作沿指定轴(axis=1对应行维度)重复应用,直到该维度只剩一个元素,就是整行异或的结果
  • keepdims=True参数保证输出是二维列向量结构,和你要求的输出格式一致,如果不需要二维结构去掉这个参数即可得到一维结果
  • astype(float)是为了匹配输入数组的浮点类型,如果需要布尔值或者整数类型可以自行调整转换规则
  • 注:你给出的示例输出中[1., 0., 0., 1.]对应的结果标注为1属于笔误,四个元素异或的实际计算结果为0

内容的提问来源于stack exchange,提问作者ZeeshanShareef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:06:03