【发布时间】:2020-07-15 08:43:54
【问题描述】:
我有两个数组,第一个是(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
谁能帮我解决这个问题?
【问题讨论】:
-
您的问题不是连接,而是调整大小(请阅读错误消息)。你甚至想通过调整大小来实现什么?您可以通过
Y[:, np.newaxis]将Y 转换为2D(一列),然后通过np.hstack((X, Y[:, np.newaxis]))将它们水平堆叠。
标签: python arrays numpy concatenation