看板 Python 關於我們 聯絡資訊
版上大大好, 我想請問一下,我的代碼如下 希望用for loop進行資料的疊加 A = np.zeros((1,3)) # A用來儲存資料 (這邊只是先做初始化) B = np.array([1,2,3]) for i in range(3): if A.shape[0] == 1: A = B else: A = np.vstack((A,B)) 現在這個代碼是可行得,但總覺得寫法好像不夠簡潔 且我在程式內需要有很多類似的操作,所以想說是否有更好的寫法 這樣程式碼看起來也簡潔許多 麻煩版上各位幫忙解惑 > < -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.46.46 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1586326721.A.F98.html ※ 編輯: oo855050 (140.112.46.46 臺灣), 04/08/2020 14:20:19
cuteSquirrel: 推測原PO想做垂直堆疊,試試看 tile 語法。 04/08 15:08
cuteSquirrel: https://imgur.com/a/n4bSRt6 04/08 15:10
cuteSquirrel: heighe可隨你想要的高度自己改變 04/08 15:11
cuteSquirrel: height 04/08 15:11
cuteSquirrel: numpy tile 官網說明: https://bit.ly/2VcQ3Sl 04/08 15:15
cuteSquirrel: 若有其他方向的array堆疊需求,也可依此類推。 04/08 15:16
oo855050: 先感謝cute大的回覆,上面的code只是個示意而已XD 04/08 15:57
oo855050: 實際上我要疊加的資料並不會完全都是一模一樣的=ˇ= 04/08 15:58
cuteSquirrel: 了解 XD 04/08 16:01
mirror0227: 既然A一開始要被取代掉,就不要在迴圈內指派,直接 v 04/08 18:50
mirror0227: stack 最後去掉第一個就好了 04/08 18:50
oo855050: mir大,這個想法我也有想過XD 不過感覺未來自己讀自己的 04/08 21:36
oo855050: 程式時會沒那麼直觀=ˇ=所以才想說有沒有更好的寫法 04/08 21:36
hsnuyi: 不說別的 如果要vstack數十萬行以上就會變的很慢 別這樣 04/08 23:00
hsnuyi: 做 04/08 23:00
hsnuyi: 看能不能直接在外面用sed或awk對csv操作就好 04/08 23:03
TuCH: 可以先轉成list 在堆疊 效率比較高 04/09 08:33
mirror0227: 我自己習慣這樣寫 04/09 13:48
mirror0227: https://bit.ly/2VcFyyt 04/09 13:51