考虑下面的简单示例:如何将1D numpy数组分配给2D numpy数组?
X = numpy.zeros([10, 4]) # 2D array
x = numpy.arange(0,10) # 1D array
X[:,0] = x # WORKS
X[:,0:1] = x # returns ERROR:
# ValueError: could not broadcast input array from shape (10) into shape (10,1)
X[:,0:1] = (x.reshape(-1, 1)) # WORKS
有人可以解释为什么numpy的具有形状的矢量(N,),而不是(N,1)? 从一维数组转换为二维数组的最佳方式是什么?
为什么我需要这个? 因为我有一个代码插入结果x
到二维数组X
和x的大小随时变化,所以我有X[:, idx1:idx2] = x
如果x
也是2D也可以,但如果x是1D,则不起作用。
你能否再添加一些评论?我不清楚你是如何从原始代码中获得的,以及为什么这能解决问题。 – brandones