我有兩個陣列:
dvec = np.repeat(0, k);dvec
mu = np.array([1,2,3,4,5])
Amat = np.stack((dvec, mu), axis=1);
和一個矩陣
I = np.identity(k)
我想列系結它們以獲得一個矩陣
Amat = np.stack((np.repeat(1,k), mu,I), axis=1);Amat
但是當我這樣做時,python 報告了我
ValueError: all input arrays must have the same shape
我該如何解決這個錯誤?
uj5u.com熱心網友回復:
您可以使用 numpy.column_stack:https ://numpy.org/doc/stable/reference/generated/numpy.column_stack.html
k=5
dvec = np.repeat(0, k);
mu = np.array([1,2,3,4,5])
I = np.identity(k)
Amat=np.column_stack((dvec,mu,I))
結果:
array([[0., 1., 1., 0., 0., 0., 0.],
[0., 2., 0., 1., 0., 0., 0.],
[0., 3., 0., 0., 1., 0., 0.],
[0., 4., 0., 0., 0., 1., 0.],
[0., 5., 0., 0., 0., 0., 1.]])
uj5u.com熱心網友回復:
這將回答您的問題:
np.hstack((np.repeat(1, 5).reshape(-1,1), np.array([1,2,3,4,5]).reshape(-1,1), I))
np.stack沿新軸連接一系列陣列。
所以它要求它們具有相同的形狀。
您需要的是hstack將陣列按順序水平堆疊(列系結)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397940.html
