在我的Python程序中,我连接了几个整数和一个数组。如果这样做会很直观:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate((x,y,z))
但是,所有的整数都必须转换为np.arrays:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate((np.array([x]),np.array([y]),z))
特别是如果您有许多变量,这种手动转换很繁琐。问题是x和y是0维阵列,而z是1维。有没有办法在没有转换的情况下进行连接?
答案 0 :(得分:3)
它们只需要是序列对象,而不一定是numpy数组:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate(([x],[y],z))
# array([1, 2, 3, 4, 5])
Numpy也有一个insert
函数可以执行此操作:
x,y,z = 1,2,np.array([3,3,3])
np.insert(z, [0,0], [x, y])
我要补充一点,如果您只是尝试将整数添加到列表中,则不需要numpy来执行此操作:
x,y,z = 1,2,[3,3,3]
z = [x] + [y] + z
或
x,y,z = 1,2,[3,3,3]
[x, y] + z
或
x,y,z = 1,2,[3,3,3]
z.insert(0, y)
z.insert(0, x)