python - How to assign a 1D numpy array to 2D numpy array? -


consider following simple example:

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: not broadcast input array shape (10) shape (10,1)  x[:,0:1] = (x.reshape(-1, 1)) # works 

can explain why numpy has vectors of shape (n,) rather (n,1) ? best way casting 1d array 2d array?

why need this? because have code inserts result x 2d array x , size of x changes time time have x[:, idx1:idx2] = x works if x 2d not if x 1d.

do need able handle both 1d , 2d inputs same function? if know input going 1d, use

x[:, i] = x 

if know input going 2d, use

x[:, start:end] = x 

if don't know input dimensions, recommend switching between 1 line or other if, though there might indexing trick i'm not aware of handle both identically.

your x has shape (n,) rather shape (n, 1) (or (1, n)) because numpy isn't built matrix math. ndarrays n-dimensional; support efficient, consistent vectorized operations non-negative number of dimensions (including 0). while may make matrix operations bit less concise (especially in case of dot matrix multiplication), produces more applicable code when data naturally 1-dimensional or 3-, 4-, or n-dimensional.


Comments

Popular posts from this blog

java - activate/deactivate sonar maven plugin by profile? -

python - TypeError: can only concatenate tuple (not "float") to tuple -

java - What is the difference between String. and String.this. ? -