我有一个numpy数组,例如:
你知道吗gmm.sigma公司=
[[[ 4.64 -1.93]
[-1.93 6.5 ]]
[[ 3.65 2.89]
[ 2.89 -1.26]]]
我想添加另一个2x2矩阵,例如:
你知道吗高斯西格玛=你知道吗
[[ -1.24 2.34]
[ 2.34 4.76]]
要获得:
你知道吗gmm.sigma公司=
[[[ 4.64 -1.93]
[-1.93 6.5 ]]
[[ 3.65 2.89]
[ 2.89 -1.26]]
[[-1.24 2.34]
[ 2.34 4.76]]]
我试过:gmm.sigma = np.append(gmm.sigma, gauss.sigma, axis = 0)
,
但是得到这个错误:
Traceback (most recent call last):
File "test1.py", line 40, in <module>
gmm.sigma = np.append(gmm.sigma, gauss.sigma, axis = 0)
File "/home/rowan/anaconda2/lib/python2.7/site-packages/numpy/lib/function_base.py", line 4528, in append
return concatenate((arr, values), axis=axis)
ValueError: all the input arrays must have same number of dimensions
感谢您的帮助
看起来您希望在第一个轴上连接两个数组-但第二个轴仅为2d。需要添加维度:
dstack
是concatenate
的变体,它将所有内容扩展到3d,并在最后一个轴上连接。要使用它,我们必须转换所有内容:index_tricks
添加了一些在维度上玩类似把戏的类:如果您想从
np.r_
的文档中获得最大的收益,那么它需要一些阅读,但是如果您必须调整几个数组的维度,例如np.r_['0,3', arr1, arr, arr1]
,那么它可能值得使用如错误消息所述,
gmm
和gauss_sigma
的维度不相同,您应该在追加之前重新塑造gauss_sigma
。你知道吗您可以使用^{} 将数组按深度顺序(沿第三个轴)堆叠,然后进行转置。要获得所需的输出,必须对
gmm.T
和gauss
进行堆栈输出
或者您也可以使用concatenate,将第二个数组正确地重新格式化为
相关问题 更多 >
编程相关推荐