python - 在二维 numpy 数组的新 x 值中附加一维 numpy 数组
问题描述
我正在尝试将一维 numpy 数组附加到二维,因此将一维数组插入到另一个 x 值的位置。
例子:
all_polys = [[5,6],[8,9]] (在下面的错误之前,其中还没有存储任何内容)
聚 = [1,2]
预期结果:
all_polys = [[5,6],[8,9],[1,2]]
我的代码:
all_polys = numpy.array([[]])
poly = np.expand_dims(poly, axis=0)
print(poly)
print(all_polys)
all_polys = np.concatenate(all_polys, poly)
错误:
TypeError:只有整数标量数组可以转换为标量索引
错误前的打印输出:
[['400' '815' '650' '815' '650' '745' '400' '745']] (添加维度的多边形)
[] (all_polies)
这真的让我很沮丧。我做错了什么?我想这一定是我忽略的一个小细节。
解决方案
从二维数组和一维数组开始:
In [26]: all_polys = np.array([[5,6],[8,9]])
In [27]: poly = np.array([1,2])
vstack
确保所有输入都是二维的,然后连接:
In [28]: np.vstack((all_polys, poly))
Out[28]:
array([[5, 6],
[8, 9],
[1, 2]])
你有正确的想法expand_dims
:
In [29]: np.concatenate((all_polys, np.expand_dims(poly, axis=0)))
Out[29]:
array([[5, 6],
[8, 9],
[1, 2]])
但这np.array([[]])
是一个糟糕的起点。为什么用那个?你是在迭代地做这个吗?
对于迭代工作,我们建议使用列表:
In [30]: alist = []
In [31]: alist.append([5,6])
In [32]: alist.append([8,9])
In [33]: alist.append([1,2])
In [34]: np.array(alist)
Out[34]:
array([[5, 6],
[8, 9],
[1, 2]])
我不鼓励使用np.append
. 它被滥用得太频繁了。
推荐阅读
- javascript - 如何将 id 从 boostrap 中的模态传递到 PHP 文件
- java - 如何使用 Java 8 流将字符串数组转换为大整数数组
- javascript - 检索 JSON 中的特定数组值 - 角度 5
- sql - 在创建 PostgreSQL 查询时需要帮助
- typescript - 如何使用角度 5 中的 JSON 文件动态构建模型类
- typescript - TypeScript 使用枚举集的一部分来定义变量的类型
- javascript - Javascript 根据用户输入更改按钮上的文本颜色
- dotnetnuke - 2sxc - 添加“实体”作为内容类型。如何按类型过滤?
- python-2.7 - 如果两个页面具有相同的链接,如何在抓取过程中移动到下一页?
- javascript - onKeyup 或 onBlur 更适合检查用户名是否存在?