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

如何用NumPy实现数组与向量的布尔比较生成目标矩阵?

解决方案

可以利用NumPy的广播机制实现无循环的向量化运算,核心是将一维数组x转换为二维列向量后与y进行逐元素相等比较:

import numpy as np

x = np.array([0.4, 0.6])
y = np.array([0, 0.2, 0.4, 0.6, 0.8, 1])

# 利用广播生成目标布尔矩阵
result = x[:, None] == y
print(result)

输出结果:

[[False False  True False False False]
 [False False False  True False False]]

原理说明:

  • x[:, None]将一维数组x的形状从(2,)转换为(2, 1),变成一个列向量;
  • 当这个列向量与一维数组y(形状(6,))进行==比较时,NumPy会自动触发广播机制,将y扩展为形状(2, 6)的矩阵,与x的列向量逐元素匹配比较;
  • 最终得到的result是形状(2, 6)的布尔矩阵,每行对应x中元素在y中的匹配位置标记为True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:34:50