Assignment when there is nothing to assign
I have the following two lines in a for loop: if len(idx): x[idx,i] = x[idx,i-1] where idx is the output of a where statement. I need the 'if len(idx)' line to prevent an error when idx is empty. Would it make sense to allow x[idx,i] = x[idx,i-1] when idx is empty instead of raising an error? The error I get is ValueError: array is not broadcastable to correct shape
On 12/21/06, Keith Goodman <kwgoodman@gmail.com> wrote:
I have the following two lines in a for loop:
if len(idx): x[idx,i] = x[idx,i-1]
where idx is the output of a where statement.
I need the 'if len(idx)' line to prevent an error when idx is empty.
Would it make sense to allow
x[idx,i] = x[idx,i-1]
when idx is empty instead of raising an error?
The error I get is
ValueError: array is not broadcastable to correct shape
Why doesn't this work?
y
matrix([[ 0.93473209, 0.34122426], [ 0.68353656, 0.77589206], [ 0.50677768, 0.25089722]])
idx = M.array([1, 2]) y[idx,0] <------this works
matrix([[ 0.68353656], [ 0.50677768]])
y[idx,0] = y[idx,1] <------but this doesn't
exceptions.ValueError Traceback (most recent call last) ValueError: array is not broadcastable to correct shape But this works:
idx = M.asarray(M.asmatrix(idx).T) y[idx,0] = y[idx,1]
participants (1)
-
Keith Goodman