logo
Loading...

資料中int64與flaot64的資料型態篩選問題 - Cupoy

# 先篩選數值型的欄位numeric_columns = list(app_train.column...

ml100,ml100-d09

資料中int64與flaot64的資料型態篩選問題

2020/06/10 下午 04:38
機器學習共學討論版
徐偉傑
觀看數:55
回答數:4
收藏數:0
ml100
ml100-d09

# 先篩選數值型的欄位
numeric_columns
= list(app_train.columns[list(app_train.dtypes.isin([np.int64, np.float64]))])

# 再把只有 2 值 (通常是 0,1) 的欄位去掉
numeric_columns
= list(app_train[numeric_columns].columns[list(app_train[numeric_columns].apply(lambda x:len(x.unique())!=2 ))])
print("Numbers of remain columns: %i" % len(numeric_columns))

# 檢視這些欄位的數值範圍
for col in numeric_columns:
   app_train
.boxplot(col)
   plt
.show()


Numbers of remain columns: 0

不太懂data裡的型態有int64與flaot64但這裡卻0

#----個人是用這種方式篩選的

numeric_columns = list(app_train.columns[list(app_train.dtypes == 'float64')])+list(app_train.columns[list(app_train.dtypes == 'int64')])

#----

最後這題解答沒有呈現

# 把一些極端值暫時去掉,在繪製一次 Histogram

# 選擇 OBS_60_CNT_SOCIAL_CIRCLE 小於 20 的資料點繪製


麻煩了~~

回答列表

  • 2020/06/12 上午 05:33
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    喔,先回覆第一個問題:


    這邊的 int64 或 float64 是有可能依照電腦規格改變的(不過同一台電腦應該不變,這邊我覺得很怪)。意思是在解答的電腦上資料是用 64 bit 作儲存,但在你的電腦可能是 32 bit。以下兩點建議:  


    (1) 先用 df.info() 或 df.describe() 的方式看一下欄位 

    (2) 用 np.dtype('int'), np.dtype('float') 定義類別比較好

    (3) 你可以比較這三者 type("int")、 type('np.dtype("int")')、type(np.int)


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/06/12 上午 05:34
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    這邊補充說明一下,在 Numpy 中有幾種表示數值的欄位:


    1. int

    2. int64

    3. np.int64

    4. np.dtype('float64')


    當只用 int 的時候預設會等於你的電腦中最大的 int 數值,不同的電腦可能會有差異。另外 int64、np.int64、np.dtype('float64') 這三種寫法在用 == 比較的時候是等價的,但用 is/isin 判斷卻會錯。原因在於 is 是比較嚴格的物件比較,除了數值本身之外,也會比型態的差異。


    舉個例子,這三種 int64、np.int64、np.dtype('float64')  都可以表達 int64,但他們分別是字串、np.int64、和 np.dtype 型態,因此在用 isin 的時候會出錯。所以這邊建議大家改用 dtype_select 來處理,會比較容易。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/06/12 上午 05:34
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    關於你的問題,建議使用np.dtype('int') ,np.dtype('float') 應該會是最精準的,或改用 select_dtypes 比較好。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/06/12 上午 05:35
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    第二題的部分,可能是更新時候沒有改到,我在幫你通知主辦單位。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃