2
也許一個簡單的問題,但我使用numpy,並迭代產生9x9x9矩陣。添加矩陣n維陣列
我想堆疊這些,所以我最終與Nx9x9x9,但使用追加,堆棧和堆棧它似乎引導的維度之一,而不是將這些作爲單獨的對象添加。任何想法我可以做到這一點?
感謝
也許一個簡單的問題,但我使用numpy,並迭代產生9x9x9矩陣。添加矩陣n維陣列
我想堆疊這些,所以我最終與Nx9x9x9,但使用追加,堆棧和堆棧它似乎引導的維度之一,而不是將這些作爲單獨的對象添加。任何想法我可以做到這一點?
感謝
這可以通過使用np.vstack
但被解析爲得到這個要需要添加另一個維度(空單)作爲第一個形狀。否則,你會堆您當前的第一維度:
import numpy as np
a = np.ones((1,2,2,2))
print(a.shape) # (1, 2, 2, 2)
,或者如果您創建數組,然後通過添加另一個維度:
a = np.ones((2,2,2))
a = a[None, :] # Adds an dimension as first
,然後堆疊起來,你可以使用:
b = np.vstack([a,a])
print(b.shape) # (2, 2, 2, 2)
c = np.vstack([b,a])
print(c.shape) # (3, 2, 2, 2)
c.shape
你說你反覆創建它們,但如果你只需要最後的結果,你甚至不需要使用vstack
只需創建一個新的數組:
a = np.ones((9,9,9))
b = np.ones((9,9,9))
c = np.ones((9,9,9))
d = np.ones((9,9,9))
res = np.array([a, b, c, d])
print(res.shape) # (4, 9, 9, 9)
非常感謝:)我不知道如何爲我的3維矩陣添加額外的維度!非常有幫助 – JB1
@ i-am-spartacus不客氣!如果這真的解決了你的問題,那麼如果你贊成或接受答案就會很好。 :) – MSeifert
今天我學到了第二件事......再次感謝! – JB1