[問題] np.vstack的用法

看板Python作者 (阿偉)時間4年前 (2020/04/08 14:18), 4年前編輯推噓7(7012)
留言19則, 5人參與, 4年前最新討論串1/1
版上大大好, 我想請問一下,我的代碼如下 希望用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

04/08 15:08, 4年前 , 1F
推測原PO想做垂直堆疊,試試看 tile 語法。
04/08 15:08, 1F

04/08 15:10, 4年前 , 2F

04/08 15:11, 4年前 , 3F
heighe可隨你想要的高度自己改變
04/08 15:11, 3F

04/08 15:11, 4年前 , 4F
height
04/08 15:11, 4F

04/08 15:15, 4年前 , 5F
numpy tile 官網說明: https://bit.ly/2VcQ3Sl
04/08 15:15, 5F

04/08 15:16, 4年前 , 6F
若有其他方向的array堆疊需求,也可依此類推。
04/08 15:16, 6F

04/08 15:57, 4年前 , 7F
先感謝cute大的回覆,上面的code只是個示意而已XD
04/08 15:57, 7F

04/08 15:58, 4年前 , 8F
實際上我要疊加的資料並不會完全都是一模一樣的=ˇ=
04/08 15:58, 8F

04/08 16:01, 4年前 , 9F
了解 XD
04/08 16:01, 9F

04/08 18:50, 4年前 , 10F
既然A一開始要被取代掉,就不要在迴圈內指派,直接 v
04/08 18:50, 10F

04/08 18:50, 4年前 , 11F
stack 最後去掉第一個就好了
04/08 18:50, 11F

04/08 21:36, 4年前 , 12F
mir大,這個想法我也有想過XD 不過感覺未來自己讀自己的
04/08 21:36, 12F

04/08 21:36, 4年前 , 13F
程式時會沒那麼直觀=ˇ=所以才想說有沒有更好的寫法
04/08 21:36, 13F

04/08 23:00, 4年前 , 14F
不說別的 如果要vstack數十萬行以上就會變的很慢 別這樣
04/08 23:00, 14F

04/08 23:00, 4年前 , 15F
04/08 23:00, 15F

04/08 23:03, 4年前 , 16F
看能不能直接在外面用sed或awk對csv操作就好
04/08 23:03, 16F

04/09 08:33, 4年前 , 17F
可以先轉成list 在堆疊 效率比較高
04/09 08:33, 17F

04/09 13:48, 4年前 , 18F
我自己習慣這樣寫
04/09 13:48, 18F

04/09 13:51, 4年前 , 19F
04/09 13:51, 19F
文章代碼(AID): #1UZMp1-O (Python)