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

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

簡單的插補刪除 nan 而不是插補

簡單的插補刪除 nan 而不是插補

SMILET 2022-08-11 17:15:15
我試圖用平均策略來插補NaN值,但不是插補它,而是刪除了值,我在這里閱讀了如何使用它和文檔,它根本無法與numpy數組或python列表一起使用,有什么問題?解決方案是什么?SimpleImputerNaNimport numpy as npfrom sklearn.impute import SimpleImputerfrom sklearn.model_selection import train_test_splitX = np.array([[2,3,6,5,4, np.nan],[2,3,6,15,4, np.nan]])SI = SimpleImputer(strategy='mean')X = SI.fit_transform(X)print(X)輸出runfile('D:/python projects/untitled0.py', wdir='D:/python projects')[[ 2.  3.  6.  5.  4.] [ 2.  3.  6. 15.  4.]]
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

In [239]: SI=SimpleImputer(verbose=1)                                                          

In [240]: SI.fit_transform(X)                                                                  

/usr/local/lib/python3.6/dist-packages/sklearn/impute/_base.py:403: UserWarning: Deleting features without observed values: [5]

  "observed values: %s" % missing)

Out[240]: 

array([[ 2.,  3.,  6.,  5.,  4.],

       [ 2.,  3.,  6., 15.,  4.]])

調整 X:


In [241]: X = np.array([[2,3,6,5,4, np.nan],[2,3,6,15,np.nan, 4]])                             

In [242]: SI.fit_transform(X)                                                                  

Out[242]: 

array([[ 2.,  3.,  6.,  5.,  4.,  4.],

       [ 2.,  3.,  6., 15.,  4.,  4.]])


查看完整回答
反對 回復 2022-08-11
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

最后一列中的所有值都在數據中。因此,imputer 會刪除該列,因為它不知道需要插補的值。請確保您的數據中至少有一個非值,以便允許 imputer 工作。NanNan


X = np.array([[2,3,6,5,4, np.nan],

              [2,3,6,15,4, np.nan], 

              [1,2,6,2,4, 1] ])


SI = SimpleImputer(strategy='mean')

SI.fit_transform(X)



# Output:

[[ 2.  3.  6.  5.  4.  1.]

 [ 2.  3.  6. 15.  4.  1.]

 [ 1.  2.  6.  2.  4.  1.]]


查看完整回答
反對 回復 2022-08-11
  • 2 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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