logo
Loading...

使用list(app_train.columns[list(app_train.dtypes.isin([np.int64, np.float64]))])list(app_train.columns[list(app_train.dtypes.isin(dtype_select))])與list(app_train.columns[list(app_train.dtypes.isin([np.dtype('int64')跑出的結果都不一致 - Cupoy

Hi All,Day9解答中:我用三種方法來測以下語法,三個方法找出來的答案都不一樣,不知到為什麼?...

ml100-3-d09,ml100-3

使用list(app_train.columns[list(app_train.dtypes.isin([np.int64, np.float64]))])list(app_train.columns[list(app_train.dtypes.isin(dtype_select))])與list(app_train.columns[list(app_train.dtypes.isin([np.dtype('int64')跑出的結果都不一致

2019/09/05 上午 08:48
機器學習共學討論版
wu wenjr
觀看數:138
回答數:1
收藏數:1
ml100-3-d09
ml100-3

Hi All,


Day9解答中:

我用三種方法來測以下語法,三個方法找出來的答案都不一樣,

不知到為什麼?


numeric_columns1 = list(app_train.columns[list(app_train.dtypes.isin([np.int64, np.float64]))])

print("1 Numbers of remain columns " , len(numeric_columns1))


dtype_select = ['int64', 'float64']

numeric_columns2 = list(app_train.columns[list(app_train.dtypes.isin(dtype_select))])

print("2 Numbers of remain columns " , len(numeric_columns2))


numeric_columns3 = list(app_train.columns[list(app_train.dtypes.isin([np.dtype('int64'), np.dtype('float64')]))])

print("3 Numbers of remain columns " , len(numeric_columns3))


1 Numbers of remain columns  41 

2 Numbers of remain columns  65 

3 Numbers of remain columns  106


請問差別在那裡?

未何結果不一樣?


而且,有時重跑時(Jupyter restart),前兩個答案會不一樣, 不知道為什麼?

不或大概可以推論用np.dtype() 因該是最好的方法。

回答列表

  • 2019/09/05 下午 09:36
    張維元 (WeiYuan)
    贊同數:4
    不贊同數: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)