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])
但是任何将它们连接起来的函数都必须以某种方式扩展维度和/或转置。因此,整体工作将是类似的。您的解决方案虽然“笨重”,但表明了对于拼接所需的维度问题的了解。
对于1d数组,这些都可以工作。
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)