准备数据以进行NumPy计算。我很好奇的方式来构建:构建现有二维数组中numpy的3d数组
myarray.shape => (2,18,18)
来自:
d1.shape => (18,18)
d2.shape => (18,18)
我尝试使用NumPy的命令:
hstack([[d1],[d2]])
,但它看起来不行!
准备数据以进行NumPy计算。我很好奇的方式来构建:构建现有二维数组中numpy的3d数组
myarray.shape => (2,18,18)
来自:
d1.shape => (18,18)
d2.shape => (18,18)
我尝试使用NumPy的命令:
hstack([[d1],[d2]])
,但它看起来不行!
hstack和vstack做没有改变阵列的维数:他们只是把他们“肩并肩”。因此,组合二维数组将创建一个新的二维数组(不是3D模型!)。
你可以做什么丹尼尔建议(直接使用numpy.array([d1, d2])
)。
您也可以将您的阵列三维阵列堆叠它们,通过添加一个新的层面,每个阵列之前:
d3 = numpy.vstack([ d1[newaxis,...], d2[newaxis,...] ]) # shape = (2, 18, 18)
事实上,d1[newaxis,...].shape == (1, 18, 18)
,您可以直接叠加两种3D阵列和获得新3D阵列(d3
),你想要的。
只是做d3 = array([d1,d2])
似乎为我工作:
>>> from numpy import array
>>> # ... create d1 and d2 ...
>>> d1.shape
(18,18)
>>> d2.shape
(18,18)
>>> d3 = array([d1, d2])
>>> d3.shape
(2, 18, 18)
:)感谢EOL,现在我将更多地了解vstack,hstack – vernomcrp 2009-11-13 09:35:29
'np.vstack([a [np.newaxis,...],b [np.newaxis,...]])'像魅力一样工作!谢谢。 – thepunitsingh 2017-11-24 14:11:03