For*_*zaa 3 python arrays integer numpy concatenation
在我的 Python 程序中,我连接了几个整数和一个数组。如果这行得通,那将是直观的:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate((x,y,z))
Run Code Online (Sandbox Code Playgroud)
但是,所有整数都必须转换为 np.arrays:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate((np.array([x]),np.array([y]),z))
Run Code Online (Sandbox Code Playgroud)
特别是如果您有很多变量,那么手动转换会很乏味。问题是 x 和 y 是 0 维数组,而 z 是 1 维数组。有没有办法在没有转换的情况下进行连接?
它们只需要是序列对象,不一定是 numpy 数组:
x,y,z = 1,2,np.array([3,3,3])
np.concatenate(([x],[y],z))
# array([1, 2, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)
Numpy 也有一个insert函数可以做到这一点:
x,y,z = 1,2,np.array([3,3,3])
np.insert(z, [0,0], [x, y])
Run Code Online (Sandbox Code Playgroud)
我要补充的是,如果您只是想将整数添加到列表中,则不需要 numpy 来执行此操作:
x,y,z = 1,2,[3,3,3]
z = [x] + [y] + z
Run Code Online (Sandbox Code Playgroud)
或者
x,y,z = 1,2,[3,3,3]
[x, y] + z
Run Code Online (Sandbox Code Playgroud)
或者
x,y,z = 1,2,[3,3,3]
z.insert(0, y)
z.insert(0, x)
Run Code Online (Sandbox Code Playgroud)