例如:
xlist = [(1, 2, 3, 4), (5, 6, 7, 8)]
xarr = np.array(xlist)
的形狀xarr是 (2,4)。
是否可以將其重塑為(2,4,1),以便我可以xarr[i][j][0]用來獲取元素?
uj5u.com熱心網友回復:
有幾種方法:
xnew = np.rehshape(xnew, (2, 4, 1)) # slow but can handle non numpy
xnew = xarr.reshape((2, 4, 1)) # can create a VIEW
xarr[:,:,np.newaxis] # (2, 4, 1) # create a VIEW
xarr.shape = (2, 4, 1) # fast, changes original array
一些性能測驗,所有操作對于中小型陣列都是不變的。

uj5u.com熱心網友回復:
利用:
out = xarr[..., None]
或者:
out = xarr.reshape(2, 4, 1)
輸出:
array([[[1],
[2],
[3],
[4]],
[[5],
[6],
[7],
[8]]])
uj5u.com熱心網友回復:
您可以np.atleast_3d在這種情況下使用。作為獎勵,它還可以處理一維陣列(盡管 n 長度的一維陣列最終會得到形狀(1,n,1)- 這可能是您在這種情況下想要的)
np.atleast_3d(xarr).shape
Out[]: (2, 4, 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518097.html
標籤:Python麻木的
上一篇:Pandas將逐個刻度資料重新采樣/聚合到512個刻度OHLC圖表
下一篇:按索引組合陣列和串列元素
