Python Numpy连接问题?

Python Numpy连接问题?,python,numpy,Python,Numpy,我试图使用numpy连接,但遇到了一个奇怪的错误 我想了解这一失败的原因: a = np.arange(0,3) b = np.arange(3,6) c = np.array([a,b]) np.concatenate(c, axis=1) AxisError:轴1超出维度为1的数组的界限 ……但这是成功的: np.concatenate([c], axis=1) grid = np.array([[0,1,2], [3,4,5]]) print(grid) np.concatenate(

我试图使用numpy连接,但遇到了一个奇怪的错误

我想了解这一失败的原因:

a = np.arange(0,3)
b = np.arange(3,6)
c = np.array([a,b])
np.concatenate(c, axis=1)
AxisError:轴1超出维度为1的数组的界限

……但这是成功的:

np.concatenate([c], axis=1)
grid = np.array([[0,1,2], [3,4,5]])
print(grid)
np.concatenate([grid,grid], axis=1)
这也成功了:

np.concatenate([c], axis=1)
grid = np.array([[0,1,2], [3,4,5]])
print(grid)
np.concatenate([grid,grid], axis=1)
的第一个参数是数组序列。当然,多维数组始终可以被视为数组序列,因此传递
c
与传递
(a,b)
的作用相同

因此,要连接的两个数组都是一维的。您试图将它们连接到轴1上,这是它们没有的轴。因此出现了错误

如果要添加一个轴并沿该新轴连接,这是(或
vstack
hstack
),而不是
连接


同时,我不确定您想要得到什么样的输出,但是因为您已经创建了
c
,所以使用它可能更容易。例如:

  • stack((a,b))
    stack(c)
    或者,如果您坚持的话,
    concatenate([c])
    都将为您提供
    数组([[0,1,2],[3,4,5]])
    …但是只要使用
    c
  • stack((a,b),axis=1)
    等将为您提供
    数组([[0,3],[1,4],[2,5]])
    ,但
    c.T
    也是如此

为什么
np.concatenate([c],axis=1)
成功了?嗯,
[c]
是一个2D数组的序列。当然有一个轴1。因此,它将该数组连接为空,并返回与
c
完全相同的内容


为什么
np.concatenate([grid,grid],axis=1)
成功了,其中
grid
是与
c
相同的二维数组?因为
[grid,grid]
是一个由两个2D数组组成的序列,所以每个数组都有一个轴1,所以它将它们连接在一起,给你
[[0,1,2,0,1,2],[3,4,5,3,4,5]
你希望从
连接(c,axis=1)
得到什么输出?你是在问为什么不能在轴1上连接
a
b
,还是
连接(c,axis=1)
最终做了与
连接((a,b,axis=1)
相同的事情,或者…?我的问题是为什么第一个失败了?我希望第一个代码摘录的输出与第二个代码摘录相匹配。第一个代码摘录失败,因为a和b只有一个轴。(
轴=0
)第二个轴不会失败,因为它有两个轴。(
axis=1
)我很想了解你想用
np.concatenate(c,axis=1)
实现什么。也就是说,如果输入
c
是一个数组,您希望从这个命令中得到什么作为输出?