python - 将一个 numpy 数组添加到另一个数组的每个元素的开头或结尾
问题描述
我有一个数组数组:
x = array([array([[1, 2],
[3, 4]]),
array([[22, 4],
[ 9, 10],
[ 3, 2]])], dtype=object)
我有一个长度相同的数组列表,例如:
xa = [array([11, 22]), array([33, 44])]
我想在纯 numpy 中将 xa 的每个元素添加到 x 的末尾或开头,如下所示:
到底:
result = array([array([[ 1, 2], [ 3, 4], [11, 22]]), array([[22, 4], [ 9, 10], [ 3, 2], [33, 44]])], dtype=object)
在一开始的时候:
result = array([array([[11, 22], [ 1, 2], [ 3, 4]]), array([[33, 44], [22, 4], [ 9, 10], [ 3, 2]])], dtype=object)
* Numpy 版本 = 1.9.3
解决方案
假设您像这样导入了 numpy:
import numpy as np
from numpy import array
(1) 不完美,但这会起作用:
result = array([np.vstack((x[0], xa[0])), np.vstack((x[1], xa[1]))])
或分别:
result = array([np.vstack((xa[0], x[0])), np.vstack((xa[1], x[1]))])
(2) 更好地利用两个数组的灵活长度:
result = array([np.vstack((x[i], xa[i])) for i in range(len(x))])
result = array([np.vstack((xa[i], x[i])) for i in range(len(x))])
(3) 更 Pythonic 的处理方式:
result = array([np.vstack((x_i, xa_i)) for (x_i, xa_i) in zip(x, xa)])
result = array([np.vstack((xa_i, x_i)) for (x_i, xa_i) in zip(x, xa)])
推荐阅读
- reactjs - 更新 apollo 缓存而不调用 graphql 服务器(apollo v3.3)
- java - 结构化 Java 源文件和/或声明/导入包以确保无错误编译的规则是什么?
- c++ - boost::spirit 替代解析器返回重复项
- powerbi - 将表转换为可以像 Table.SelectRows 条件一样工作的函数
- r - R twang 包的 mnps 函数显示绝对标准差图的警告错误
- python - Tkinter 窗口标题作为变量
- php - 在 Laravel 中访问没有 .htaccess 的路由
- php - 检查数据库是否包含两个年龄相同的人并打印出来
- python - TensorFlow 模型只能在一台计算机上取得好结果,其他地方都失败
- javascript - 显示不同的图像 onClick 事件 (JavaScript)