Python Numpy连接问题?
我试图使用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(
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
是一个数组,您希望从这个命令中得到什么作为输出?