python - 复制和替换 numpy 数组中的值.. nans 将是 nan 但其他值将为零
问题描述
我有一个 numpy 数组,我想将其复制到另一个 numpy 数组并将除 nan 值之外的所有值替换为零。你能帮忙吗?
解决方案
如果你想设置一个 0 数组,那么我想没有必要复制原始数组。只需创建一个零数组并将适当的索引设置为 nan。
import numpy as np
a = np.array([1, 2, np.nan, 4, 5, np.nan])
b = np.zeros(a.shape)
b[np.isnan(a)] = np.nan
输出
>>> b
[ 0. 0. nan 0. 0. nan]
编辑:现在您已经更新了问题,您可以改用它:
import numpy as np
a = np.array([1, 2, np.nan, 4, 5, np.nan])
b = np.zeros(a.shape)
c = np.array([10, 11, 12, 13, 14, 15])
b[np.isnan(a)] = c[np.isnan(a)]
print(b)
输出
>>> b
[ 0. 0. 12. 0. 0. 15.]
如果这也是您使用的,请随意将 dtype 更改为 int
推荐阅读
- python - Scrapy失败的表提取
- vb.net - 使用 DLL 中定义的接口函数
- google-maps - 谷歌开发者账户问题
- mysql - 基于从其他表中选择的 mySQL 更新
- mysql - MySQL - 如何将数据库组织到文件夹中
- java - Spring Boot 使用 Jersey + Actuator
- c++ - “p”数组如何使用 C++ std::normal_distribution 在以下代码中存储值?
- bash - 如何通过命令行检查 Ubuntu 16.04 的每日更新?
- airflow - 如何定期停用非活动 DAG?
- c# - 自定义 JSONConvert 序列化