D028 語法問題
2019/06/17 下午 10:04
機器學習共學討論版
陳裕興
觀看數:21
回答數:2
收藏數:0
ml100-2
ml100-2-d28
from itertools import compress
L1_mask = list((L1_Reg.coef_>0) | (L1_Reg.coef_<0))
L1_list = list(compress(list(df), list(L1_mask))) 請問一下這一行的用意是?
L1_list
回答列表
-
2019/06/18 上午 10:45Chen-Ming Yang贊同數:1不贊同數:0留言數:0
如果是不清楚 compress 在做甚麼事情, 建議可以參考官方網站的文檔
https://docs.python.org/zh-cn/3/library/itertools.html#itertools.compress
compress 接受兩個參數
- 第一個參數是一個 list, 是你的資料
- 第二個參數我們可以視為 mask (1, 0 表示的 list)
範例
ans = compress('ABCDEF',
[1,0,1,0,1,1]) // generator: 直接印看不到結果
ans = list(ans) // [A,C,E,F]
-
2019/06/18 上午 11:37張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
L1_list = list(compress(list(df), list(L1_mask))) 請問一下這一行的用意是?
=>
這行的意思是會將 L1_mask 作為 df 的篩選條件,應該會等同於用 boolean filtering 的方式處理:
```
L1_list = list(df.loc[:,(L1_Reg.coef_>0) | (L1_Reg.coef_<0)])
L1_list
```