D
David Sanders
Hi,
I have a script with function definitions which I load into ipython
for interactive use.
These functions modify a global numpy array, whose size I need to be
able to change interactively. I thus have a script which looks like
this:
from numpy import *
def do_resize(N):
global a
a = resize(a, N)
a = array([])
N=10; do_resize(N)
print "Length of a is: ", len(a)
N=20; do_resize(N)
print "Length of a is: ", len(a)
If I run this in ipython, using "run resize.py", it correctly outputs
10 and then 20.
If I now type *interactively* N=30; do_resize(N), then the length of
a is still 20, rather than 30 as I was hoping -- somehow I seem to be
now dealing with a different copy of a?
Doing the same thing in idle works as I expect, i.e. interactively the
size is changed to 30.
Could somebody please explain what's going on, and how I solve the
problem?
Thanks and best wishes,
David.
I have a script with function definitions which I load into ipython
for interactive use.
These functions modify a global numpy array, whose size I need to be
able to change interactively. I thus have a script which looks like
this:
from numpy import *
def do_resize(N):
global a
a = resize(a, N)
a = array([])
N=10; do_resize(N)
print "Length of a is: ", len(a)
N=20; do_resize(N)
print "Length of a is: ", len(a)
If I run this in ipython, using "run resize.py", it correctly outputs
10 and then 20.
If I now type *interactively* N=30; do_resize(N), then the length of
a is still 20, rather than 30 as I was hoping -- somehow I seem to be
now dealing with a different copy of a?
Doing the same thing in idle works as I expect, i.e. interactively the
size is changed to 30.
Could somebody please explain what's going on, and how I solve the
problem?
Thanks and best wishes,
David.