[英]numpy array filter and replace
我有一個數組
a = np.array([1,2,3,4,np.nan])
我想用np.nan
替換所有小於1.5的np.nan
,即我想
a = np.array([np.nan,2,3,4,np.nan])
我怎么做?
我做了
a[a<1.5] = np.nan
我在IPython(Py3.4) RuntimeWarning: invalid value encountered in less
收到以下運行時警告錯誤RuntimeWarning: invalid value encountered in less
。 這是因為我的列表中np.nan
嗎? 我有什么辦法可以防止這種情況發生?
還有一種無需分配就可以內聯的方式嗎? 而不是做
a[a<1.5]=np.nan
return a
我可以做
return a...
....是需要填寫的地方。
這是[
RuntimeWarning
],因為我的列表包含np.nan嗎?
是。
我有什么辦法可以防止這種情況發生?
就您而言,可以安全地忽略此警告。 為了避免意外刪除無關的警告,請不要在上下文管理器中放入除顯示的那一行以外的任何內容 。
>>> import numpy as np
>>> a = np.array([1,2,3,4,np.nan])
>>> with np.errstate(invalid='ignore'):
... a[a<1.5] = np.nan
...
>>> a
array([ nan, 2., 3., 4., nan])
這是就地操作,此處未創建副本。 要返回副本,與原來的a
修改,喜歡蒙面陣列的方法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.