Assigning to columns in NumPy?
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x
Use a[:,1] = x[:,0]
. You need x[:,0]
to select the column of x
as a single numpy array. If you have the choice of how to format x
, it's better to not make it a 2-dimensional array in the first place, but just a regular (row) array:
>>> a
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> x = numpy.ones(5)
>>> x
array([ 1., 1., 1., 1., 1.])
>>> a[:,1] = x
>>> a
array([[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.],
[ 0., 1., 0.]])