亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在numpy中逐塊重塑?

在numpy中逐塊重塑?

江戶川亂折騰 2021-12-29 20:46:52
我有一個 numpy 數組,其中的列在塊中。我想轉置塊。它在概念上很簡單,我想人們可以簡單地做到這一點,但我不知道如何做到。給定塊形式的 numpy 數組np.hstack(list_of_blocks),我想得到np.vstack(list_of_blocks).為了使它更精確,我想在下面的代碼片段中從一個數組a到另一個數組b。import numpy as npa = np.zeros((3,6))b = np.zeros((9,2))t_max = 3for col in range(1,7):    for time in range(1,t_max+1):            val = ((1+col)//2)*100+((col+1) % 2)*10+time        a[time-1,col-1]= val        b[time+t_max*(((1+col)//2)-1)-1,((col+1) % 2)] = val矩陣看起來像:>>> print(a)[[101. 111. 201. 211. 301. 311.] [102. 112. 202. 212. 302. 312.] [103. 113. 203. 213. 303. 313.]]>>> print(b)[[101. 111.] [102. 112.] [103. 113.] [201. 211.] [202. 212.] [203. 213.] [301. 311.] [302. 312.] [303. 313.]]當然,矩陣不是3 x (2*3),而是n x (k*m)在 numpy 中重塑這樣的有效方法是什么?
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

重塑,置換軸和重塑 -

N = a.shape[1]//t_max
b_out = a.reshape(a.shape[0],-1,N).swapaxes(0,1).reshape(-1,N)

更多信息intuition behind nd-to-nd array transformation。


查看完整回答
反對 回復 2021-12-29
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

np.vstack(np.hsplit(a,3)) 完全按照要求執行,可讀,但性能不如 Divkar 的答案。


查看完整回答
反對 回復 2021-12-29
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號