gpt4 book ai didi

python - 在 numpy 中附加 2x2 协方差矩阵

转载 作者:太空狗 更新时间:2023-10-30 02:36:24 24 4
gpt4 key购买 nike

我有一个 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。它需要一个额外的维度:

In [233]: arr = np.arange(8).reshape(2,2,2)
In [234]: arr1 = np.arange(10,14).reshape(2,2)
In [235]: np.concatenate((arr, arr1[None,:,:]), axis=0)
Out[235]:
array([[[ 0, 1],
[ 2, 3]],

[[ 4, 5],
[ 6, 7]],

[[10, 11],
[12, 13]]])

dstackconcatenate 的变体,它将所有内容扩展到 3d,并在最后一个轴上连接。要使用它,我们必须转置所有内容:

In [236]: np.dstack((arr.T,arr1.T)).T
Out[236]:
array([[[ 0, 1],
[ 2, 3]],

[[ 4, 5],
[ 6, 7]],

[[10, 11],
[12, 13]]])

index_tricks 添加了一些在维度上玩类似技巧的类:

In [241]: np.r_['0,3', arr, arr1]
Out[241]:
array([[[ 0, 1],
[ 2, 3]],

[[ 4, 5],
[ 6, 7]],

[[10, 11],
[12, 13]]])

np.r_ 的文档如果您想从中获得最大 yield ,则需要阅读一些内容,但如果您必须调整多个数组的维度,它可能值得一用,例如。 np.r_['0,3', arr1, arr, arr1]

关于python - 在 numpy 中附加 2x2 协方差矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54394572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com