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

如何简洁实现遍历数组判断元素生成对应0/1值的新数组

简洁实现方案

你写的多层循环逻辑可以用逐元素广播操作一行完成,完全适配任意维度的数组:

# 直接生成新数组B
B = Int.(A .>= 1)

原理解释

  • A .>= 1 是逐元素对A的所有值做大于等于1的判断,输出和A维度完全一致的布尔数组,满足条件的位置为true,不满足为false
  • Int.() 是逐元素做类型转换,Julia中布尔值属于整数子类,true会直接转换为1,false转换为0,刚好匹配你的赋值需求

如果已经提前初始化了B数组,想要原地修改避免额外内存开销,可以用点等赋值写法:

B .= Int.(A .>= 1)

这个写法不需要手动处理维度、写多层循环,通用性更强,且广播操作经过官方底层优化,执行效率不会低于手动实现的循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:45:02