gpt4 book ai didi

python - 如何向 NumPy 数组添加多个额外的列

转载 作者:行者123 更新时间:2023-11-28 20:32:40 27 4
gpt4 key购买 nike

假设我有两个 NumPy 数组,ab:

a = np.array([
[1, 2, 3],
[2, 3, 4]
])

b = np.array([8,9])

我想将相同的数组 b 附加到每一行(即添加多列)以获得一个数组,c:

b = np.array([
[1, 2, 3, 8, 9],
[2, 3, 4, 8, 9]
])

如何在 NumPy 中轻松高效地执行此操作?

我特别担心它在大数据集上的行为(其中 ab 大得多),是否有任何方法可以创建许多副本(即 a.shape[0]) b?

this question相关,但具有多个值。

最佳答案

这是一种方法。我认为它是有效的,因为它是矢量化的。它依赖于这样一个事实,即在矩阵乘法中,用列 (1, 1) 预乘一行将产生该行的两个堆叠副本。

import numpy as np

a = np.array([
[1, 2, 3],
[2, 3, 4]
])

b = np.array([[8,9]])

np.concatenate([a, np.array([[1],[1]]).dot(b)], axis=1)

Out: array([[1, 2, 3, 8, 9],
[2, 3, 4, 8, 9]])

请注意,b 的指定略有不同(作为二维数组)。

Is there any way around creating many copies of b?

最终结果包含这些副本(而 numpy 数组实际上是内存中的值数组),所以我不明白如何。

关于python - 如何向 NumPy 数组添加多个额外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52132331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com