3

在我的 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 维的。有没有办法在不转换的情况下进行连接?

4

1 回答 1

6

它们只需要是序列对象,不一定是 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)
于 2013-08-20T11:52:01.883 回答