From: Keith G. <kwg...@gm...> - 2006-11-12 20:18:56
|
On 11/12/06, Keith Goodman <kwg...@gm...> wrote: > >> x = M.matrix([[1, 2], [3, 4]]) > >> x > matrix([[1, 2], > [3, 4]]) > > >> y = M.matrix([[5], [6]]) > >> y > matrix([[5], > [6]]) > > >> idx = M.where(x[:,0].A < 100)[0] > >> idx > array([0, 1]) > > > >> x[idx,0] # <---- This works > matrix([[1], > [3]]) > > >> x[idx,0] = y # <---- But this doesn't work. How can I make it work? > > ValueError: array is not broadcastable to correct shape Awkward, but it works: >> idx = M.asmatrix(idx) >> idx matrix([[0, 1]]) >> idx = idx.T >> idx matrix([[0], [1]]) >> x[idx,0] = y But it does seem odd to me that the array idx in the original example works for a slice but for not an assignment. |