如何连接1d和0d numpy数组的混合列表?

时间:2018-04-25 21:39:34

标签: python numpy

我试图连接一个数组列表,它是零和一维数组的混合。它们是某些输出文件上genfromtxt的结果。打破我的最小例子如下:

from numpy import array, concatenate
array1 = array([1.0, 2.0])
array2 = array(3.0)
concatenate([array1, array2])

此代码产生错误:

ValueError: zero-dimensional arrays cannot be concatenated

有没有办法在一行中连接1d和0d的列表?感谢。

3 个答案:

答案 0 :(得分:2)

Python提供了一个函数atleast_1d,以解决问题

from numpy import array, concatenate, atleast_1d
array1 = array([1.0, 2.0])
array2 = array(3.0)
concatenate([atleast_1d(a) for a in [array1, array2]])

和我原来的问题

concatenate([atleast_1d(a) for a in mixed_list])

将解决连接问题。

答案 1 :(得分:0)

当您声明第二个数组

时,您忘记了 []
from numpy import array, concatenate
array1 = array([1.0, 2.0])
array2 = array([3.0])
print(concatenate([array1, array2]))

输出:

[1. 2. 3.]

答案 2 :(得分:0)

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

添加尺寸然后叠加

>>> np.hstack([a, b[None,]])
array([1, 2, 3])

>>> np.hstack([a, b.reshape(1)])
array([1, 2, 3])

>>> np.concatenate((a, b.reshape(1)))
array([1, 2, 3])