python - 如何使用 numpy 进行连接?
问题描述
我有两个数组,第一个是(n 行,6 列),比如说X
:
[[ 0.2 7.7 -6.2 0.4 9.6 -2.4]
[ 0.1 7.2 -6.3 0.4 9.5 -2.1]
[ 0.02 7.9 -5.8 0.2 9.1 -3.5]
...
[-3.6 7.9 -5.3 -0.7 9.4 -0.4]
[-1.2 8.8 -4.1 -0.4 9.8 0.9]
[-1.2 9.6 1.2 -1.0 9.8 1.6]]
第二个是(n 个元素),比如说Y
:
[100. 101. 102. 103. 100. 100. 100. 100. 100. 100. 100. 100. 100. 100.
100. 100. 100. 100. 100. 100. 100. 101. 101. 101. 101. 101. 101. 101.
...
105. 105. 105. 105. 105. 105. 105. 105. 105. 105. 105. 105. 105. 105.
105. 107. 108. 109.]
我想要第三个 c 数组(n 行,7 列),比如Z
:
[[ 0.2 7.7 -6.2 0.4 9.6 -2.4 100.]
[ 0.1 7.2 -6.3 0.4 9.5 -2.1 101.]
[ 0.02 7.9 -5.8 0.2 9.1 -3.5 102.]
...
[-3.6 7.9 -5.3 -0.7 9.4 -0.4 107.]
[-1.2 8.8 -4.1 -0.4 9.8 0.9 108.]
[-1.2 9.6 1.2 -1.0 9.8 1.6 109.]]
我有这个代码来做到这一点:
import numpy as np
Y.resize((2, 1))
Z = np.concatenate((X, Y), axis=1)
但我收到了这个错误信息:
Y.resize((2, 1))
ValueError: resize only works on single-segment arrays
谁能帮我解决这个问题?
解决方案
最简单的方法是:
Z = np.hstack((X,Y[:,None]))
Y[:,None]
添加一个维度Y
并将hstack
它们水平堆叠。
例子:
X=np.ones((3,6))
#[[1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1. 1.]]
Y = np.zeros(3)
#[0. 0. 0.]
Z:
[[1. 1. 1. 1. 1. 1. 0.]
[1. 1. 1. 1. 1. 1. 0.]
[1. 1. 1. 1. 1. 1. 0.]]
推荐阅读
- validation - Spring JPA 自定义验证器 Bean 注入
- dji-sdk - Python 中的 DJI Onboard SDK
- json - MongoDB:仅在一种上下文中使用的关系数据?(集合与架构)
- json - 与查找结果不同的聚合
- sql - 使用 R 从 Photos App 中读取锁定的 .db 文件
- python - 扩展:django 中的条件模板
- vba - 在另一个打开的工作簿中访问工作表时下标超出范围
- ios - 架构 x86_64 的 1159 个重复符号
- node.js - 使用 jsdom 解析 html 文件正文
- amazon-web-services - AWS ELB 从 Fastly 健康检查中获得大量 404 错误