[英]How to set elemnts of numpy array based on elements of another numpy array
我正在嘗試根據 array2 的 nan 元素將 array1 的元素設置為 nan。
以下是我的代碼(不起作用)
我將不勝感激幫助:)
array1 = np.array([1.,1.,1.,1.,1.,1.,1.,1.,1.,1.])
array2 = np.array([2.,2.,2.,2.,np.nan,np.nan,np.nan,2.,2.,2.])
#I want to create:
#[1.,1.,1.,1.,np.nan,np.nan,np.nan,1.,1.,1.]
# I've tried:
array1[array2 == np.nan] = np.nan
print(array1)
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
使用 np.isnan。
import numpy as np
array1 = np.array([1.,1.,1.,1.,1.,1.,1.,1.,1.,1.])
array2 = np.array([2.,2.,2.,2.,np.nan,np.nan,np.nan,2.,2.,2.])
array1[np.isnan(array2)] = np.nan
print(array1)
Output 根據需要:
[ 1. 1. 1. 1. nan nan nan 1. 1. 1.]
您可以使用numpy.argwhere
通過np.nan
查找索引,最后使用這些索引更改 array1 的值。
import numpy as np
array1 = np.array([1.,1.,1.,1.,1.,1.,1.,1.,1.,1.])
array2 = np.array([2.,2.,2.,2.,np.nan,np.nan,np.nan,2.,2.,2.])
inds = np.argwhere(np.isnan(array2))
print(inds)
array1[inds] = np.nan
print(array1)
[[4]
[5]
[6]]
[ 1. 1. 1. 1. nan nan nan 1. 1. 1.]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.