1stcol
不是有效的變量名稱。
就效率而言這很難被打敗。
In [159]: d = np.array(np.arange(1,20,0.5), ndmin=2)
...: e = np.array(np.random.uniform(0,1,np.shape(d)[1]), ndmin=2)
...: tallmat = np.transpose(np.concatenate((d,e),axis=0))
爲d
和e
簡單表述爲:
d = np.arange(1,20,0.5)[None,:]
e = np.random.uniform(0,1,d.shape)
您可以構建更簡單的一維數組
In [160]: a = np.arange(1,20,0.5)
...: b = np.random.uniform(0,1,np.shape(d)[1])
但是,加入他們將不得不擴大尺寸的任何功能和/或以另一種方式換位。所以整體工作會很相似。您的解決方案雖然「笨拙」,但它展示了連接所需維度問題的知識。
隨着一維數組,這些所有的工作
np.column_stack((a,b))
np.c_[a,b]
np.stack((a,b),axis=-1)
np.array((a,b).T
我爲d
和e
簡單的表情表明另一個構造 - 使輸入(N,1)從一開始:
In [171]: d = np.arange(1,20,0.5)[:,None]
In [172]: e = np.random.uniform(0,1,d.shape)
In [173]: tallmat = np.concatenate((d,e), axis=1)
或者擺脫輸入數組的額外維數來獲得一維數組,並使用快捷鍵np.c_ [a,b]有時比* pin選項更容易記住 – NaN