簡體   English   中英

如何根據另一個 numpy 數組的元素設置 numpy 數組的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM