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

如何用NumPy一维数组结合布尔掩码按行/列填充ndarray?

用NumPy实现按行/列填充掩码对应值

首先给出基础代码:

import numpy as np
X = np.array([[1, 2, 3], [4, 5, 6]])
mask = np.array([[False, False, True], [False, True, False]])
values = np.array([20, 30])

按行填充

直接利用布尔索引完成赋值:mask每行对应一个True位置,X[mask]会提取所有True位置的元素(形状与values一致),直接赋值即可得到目标结果。

X_row = X.copy()
X_row[mask] = values
print(X_row)
# 输出:
# [[ 1  2 20]
#  [ 4 30  6]]

按列填充

通过转置数组和掩码来实现按列顺序的填充:转置后,原数组的列变为行,此时用转置后的掩码进行布尔索引赋值,最后再转置回原形状,即可得到按列填充的结果。

X_col = X.copy()
X_col.T[mask.T] = values
print(X_col)
# 输出:
# [[ 1  2 30]
#  [ 4 20  6]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:43:30