【发布时间】:2021-04-07 12:58:39
【问题描述】:
我有一个形状为 (2000,1) 的 numpy 数组,我需要形状为 (2000,7)。 我们添加的第 6 列中的值可以是任何值。 有没有什么功能或方法可以做到这一点? 谢谢。
【问题讨论】:
标签: python arrays numpy data-science
我有一个形状为 (2000,1) 的 numpy 数组,我需要形状为 (2000,7)。 我们添加的第 6 列中的值可以是任何值。 有没有什么功能或方法可以做到这一点? 谢谢。
【问题讨论】:
标签: python arrays numpy data-science
你可以试试numpy.hstack。
>>> x = np.zeros((2000, 1))
>>> x.shape
(2000, 1)
>>> x = np.hstack((x, np.zeros((2000, 6))))
>>> x.shape
(2000, 7)
【讨论】:
一个有趣的选项是 np.pad 函数。
第二个参数(pad_with - 一个 2 元组列表)定义了多少 在每个维度的开头/结尾添加元素。
例子:
arr = np.arange(1,7)[:, np.newaxis]
arr.shape # (6, 1)
result = np.pad(arr, [(0, 0), (0, 6)])
result.shape # (6, 7)
也可以传递第三个参数 - mode - 定义各种 什么价值来填充。有关详细信息,请参阅文档。
【讨论】:
您可以通过广播做到这一点:
x = np.zeros((2000, 1))
np.broadcast_to(x, (2000,7))
在这种情况下,第一行中的值将沿第二个轴重复。
【讨论】: