Numpy append 3D vectors without flattening(Numpy 附加 3D 向量而不展平)
问题描述
我有以下向量
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
:
Since np.concatenate
returns a new array, reassign its return value to a
to "append" b
to a
:
a = np.concatenate([a, b[None, :]])
这篇关于Numpy 附加 3D 向量而不展平的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Numpy 附加 3D 向量而不展平


基础教程推荐
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01