我试图连接一个数组列表,它是零和一维数组的混合。它们是某些输出文件上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的列表?感谢。
答案 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])