【发布时间】:2019-08-19 21:15:16
【问题描述】:
假设我有一个 2D NumPy 数组 values。我想向它添加新列。新列应为values[:, 19],但滞后一个样本(第一个元素等于零)。它可以返回为np.append([0], values[0:-2:1, 19])。我试过了:Numpy concatenate 2D arrays with 1D array
temp = np.append([0], [values[1:-2:1, 19]])
values = np.append(dataset.values, temp[:, None], axis=1)
但我明白了:
ValueError: all the input array dimensions except for the concatenation axis
must match exactly
我也尝试使用c_ 作为:
temp = np.append([0], [values[1:-2:1, 19]])
values = np.c_[values, temp]
但效果是一样的。如何进行这种连接。我认为问题出在temp 方向 - 它被视为行而不是列,因此存在尺寸问题。在 Octave '(转置运算符)中可以解决问题。也许 NumPy 有类似的解决方案?
无论如何,谢谢你的时间。
最好的问候,
最大
【问题讨论】:
-
如果
temp是形状 (n,) (1d),您可以使用temp[:,None]或temp.reshape(n,1)创建一个二维“列”。然后可以是concatenate,在轴=1 上具有二维(n,m)数组。与 Octave 的主要区别在于 numpy 数组可以是真正的 1d。
标签: python arrays numpy concatenation