numpy附加3D向量而无需展平 [英] Numpy append 3D vectors without flattening
本文介绍了numpy附加3D向量而无需展平的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
l具有以下向量
video_132.shape
Out[64]: (64, 3)
我要为其添加三个值的新3D矢量
that l would to add to it a new 3D vector of three values
video_146[1][146][45]
如此
video_146[1][146][45].shape
Out[68]: (3,)
和
video_146[1][146][45]
Out[69]: array([217, 207, 198], dtype=uint8)
我何时执行以下操作
np.append(video_132,video_146[1][146][45])
我应该得到
video_132.shape
Out[64]: (65, 3) # originally (64,3)
但是我得到了:
Out[67]: (195,) # 64*3+3=195
似乎使向量变平了
如何通过保留3D结构进行附加?
How can l do the append by preserving the 3D structure ?
推荐答案
为简便起见,我们将video_132
-> a
和video_146[1][146][45]
-> b
重命名.特定的值并不重要,所以可以说
For visual simplicity let's rename video_132
--> a
, and video_146[1][146][45]
--> b
. The particular values aren't important so let's say
In [82]: a = np.zeros((64, 3))
In [83]: b = np.ones((3,))
然后我们可以使用以下方法将b
附加到a
:
Then we can append b
to a
using:
In [84]: np.concatenate([a, b[None, :]]).shape
Out[84]: (65, 3)
由于 np.concatenate
返回了一个新的数组,将其返回值重新分配给a
以便将b
追加到a
:
a = np.concatenate([a, b[None, :]])
这篇关于numpy附加3D向量而无需展平的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文