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

Numpy中如何根据数组A的NaN位置替换数组B对应位置值为NaN

实现方法

直接使用numpy布尔索引即可,这是numpy原生向量化操作,处理你582x533的数组效率极高,不会有性能问题:

# 只要A对应位置为NaN,就把B的对应位置赋值为NaN
B[np.isnan(A)] = np.nan

原代码出错原因

你之前使用np.ma.masked_where的参数逻辑错误:该方法第一个参数是掩码条件,第二个参数是需要被掩码的原数组,你传入的第二个参数是np.nan而非数组B,同时掩码数组默认不会直接替换值为NaN,还要额外调用填充方法,远不如布尔索引赋值简单直接。

完整测试示例

import numpy as np
A = np.array([[np.nan,np.nan,0],[4,5,6],[7,8,9]])
B = np.zeros((len(A),len(A[0])))

# 核心操作
B[np.isnan(A)] = np.nan

print(B)

运行后输出的B结果为:

[[nan nan  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:27:03