如何堆叠浮点值的numpy数组

0 投票
2 回答
38 浏览
提问于 2025-04-14 16:07

我有两个包含浮点数的numpy数组,如下所示:

a = np.array([.6,.5])
b = np.array([.2,.3])
print(np.stack(a,b,dtype=float))

当我想把它们叠加在一起时,我原本期待得到这样的结果:

[[.6, .5]
 [.2, .3]]

但是我遇到了这个错误:TypeError: only integer scalar arrays can be converted to a scalar index

我该怎么做才能实现这个呢?提前谢谢大家。

2 个回答

1

你需要在想要合并的数组周围加上括号:

a = np.array([.6,.5])
b = np.array([.2,.3])
print(np.stack((a, b)))

这样就能得到预期的结果:

[[0.6 0.5]
 [0.2 0.3]]

当你查看 help(np.stack) 时,你会看到 np.stack 的第一个参数叫做 arrays,它需要一个 array_like 的序列。这意味着,我们需要在数组周围加上一些额外的括号,让它变成一个序列。

3

正如在 numpy的文档 中提到的,第一参数应该是一个类似数组的序列。

你需要把一个数组的列表或元组作为第一个参数传入,像下面这样:

>>> import numpy as np
>>> a = np.array([.6,.5])
>>> b = np.array([.2,.3])
>>> np.stack((a, b))
array([[0.6, 0.5],
       [0.2, 0.3]])

撰写回答