Re: [問題] 刪除大量數據的速度問題

作者: uranusjr (←這人是超級笨蛋)   2015-11-05 16:17:02
※ 引述《stba5328 (St. Ba)》之銘言:
: 想請問一下
: 我想從x, y兩個元素數量相等list當中,刪除所有值為-9999的項,
: 並且另一list同index的項目也要刪除,但因為list中大概有180萬筆,
: -9999的聯集數量大概57萬筆,該如何加速以下的程序呢?
: def get_index(a):
: lst = [i for i, j in enumerate(a) if j == -9999]
: return lst
: indx = get_index(x)
: indy = get_index(y)
: indlst = list(set(indx) | set(indy))
: xlst = [j for i, j in enumerate(x) if i not in indx]
: ylst = [j for i, j in enumerate(y) if i not in indy]
最高指導原則:各 list 中各個元素只看一次
因為你有那麼多資料, 當然是看越少次越好
所以只能用一個 for 迴圈, 就要把兩個串列走完
可以這樣想:
作者: stba5328 (St. Ba)   2015-11-06 20:51:00
感謝u大!但到最後分離x, y的步驟會顯示to many valuesto unpack 但 用numpy array 轉置後就完成了 感謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com