考虑以下简单示例:
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 则不行。