亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

替換值時 Numpy astype 不起作用

替換值時 Numpy astype 不起作用

慕森卡 2023-02-22 16:42:32
我有一個 NumPy 整數數組,想用 nans 替換一些值。這需要將類型轉換為浮點數,如果我這樣做很天真:import numpy as npx = np.arange(5)# 1)x = x.astype(float)[x==2]=np.nan# 2) this does not change the values inside x# x.astype(float)[x==2]=np.nan我有AttributeError: 'float' object has no attribute 'astype'在1) 的情況下,在2)中沒有變化。如果我之前重新定義類型,一切正常x:x = np.arange(5)x = x.astype(float)x[x==2]=np.nan# array([ 0.,  1., nan,  3.,  4.])這里發生了什么?我認為錯誤消息指的是,np.nan但我不知道發生了什么。編輯:如果沒有重新定義,我怎么能寫呢,即。在一條線上?
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

我總結了來自@Swier、@MrFuppes 和@hpaulj 的評論的所有回復,這些回復回答了這個問題。

x.astype(float)生成一個新數組,而不是視圖——它x以浮點數形式返回,然后可以將其分配給其他對象(在我的示例中,我用 覆蓋了現有的xx = x.astype(float)

另一方面,x[x==2] = np.nan將 nans 分配給現有數組的某些值,它不會返回任何內容。修改它不會修改原來的數組x

要在一行中做我想做的事,可以使用np.where

x = np.where(x==2, np.nan, x.astype(float))


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號