gpt4 book ai didi

python - 在 numpy 中组合二维数组与一维数组

转载 作者:行者123 更新时间:2023-12-02 18:20:35 26 4
gpt4 key购买 nike

我有两个像这样的 numpy 数组,

data1 = np.array([[17, 48],
[17, 53],
[17, 55]])
data2 = np.array([100,200])

我想通过在每个数组的开头添加 1 来组合这些数组。

我试过了,

out = []
for i in data1:
for j in data2:
out.append([1,i,j])
np.array(out)

#array([[1, array([17, 48]), 100],
# [1, array([17, 48]), 200],
# [1, array([17, 53]), 100],
# [1, array([17, 53]), 200],
# [1, array([17, 55]), 100],
# [1, array([17, 55]), 200]], dtype=object)

但是输出不是我想要的。预期的如下所示。

data_desired = np.array([[1,17,48,100],
[1,17,48,200],
[1,17,53,100],
[1,17,53,200],
[1,17,55,100],
[1,17,55,200]])

顺便说一句,使用循环对我来说似乎也是错误的。也许还存在其他替代方案,例如广播、newaxis 等?

提前致谢!

最佳答案

您可以使用解包运算符*来解包i。这可能是适合您的情况的最简单的解决方法。

out = []
for i in data1:
for j in data2:
out.append([1,*i,j])
np.array(out)

关于python - 在 numpy 中组合二维数组与一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70939042/

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