vj wrote: > I've tried to post this to the numpy google group but it seems to be > down.
It is just a redirection to the numpy-discussion@scipy.org list. If you just tried in the past hour or so, I've discovered that our DNS appears to be down right now. > My migration seems to be going well. I currently have one issue > with using scipy_base.insert. > >>>> a = zeros(5) >>>> mask = zeros(5) >>>> mask[1] = 1 >>>> c = zeros(1) >>>> c[0] = 100 >>>> numpy.insert(a, mask, c) > array([ 100., 0., 100., 100., 100., 0., 0., 0., > 0., 0.]) >>>> a > array([ 0., 0., 0., 0., 0.]) >>>> b > array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], dtype=int8) >>>> mask > array([ 0., 1., 0., 0., 0.]) >>>> c > array([ 100.]) > > I would have expected numpy.insert to update a so that the second > element in a would be 100. No, that's not what insert() does. See the docstring: In [1]: from numpy import * In [2]: insert? Type: function Base Class: <type 'function'> Namespace: Interactive File: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/numpy-1.0.2.dev3569-py2.5-macosx-10.3-fat.egg/numpy/lib/function_base.py Definition: insert(arr, obj, values, axis=None) Docstring: Return a new array with values inserted along the given axis before the given indices If axis is None, then ravel the array first. The obj argument can be an integer, a slice, or a sequence of integers. Example: >>> a = array([[1,2,3], ... [4,5,6], ... [7,8,9]]) >>> insert(a, [1,2], [[4],[5]], axis=0) array([[1, 2, 3], [4, 4, 4], [4, 5, 6], [5, 5, 5], [7, 8, 9]]) The behaviour that you seem to want would be accomplished with the following: In [3]: a = zeros(5) In [4]: mask = zeros(5, dtype=bool) In [5]: mask[1] = True In [6]: mask Out[6]: array([False, True, False, False, False], dtype=bool) In [7]: a[mask] = 100 In [8]: a Out[8]: array([ 0., 100., 0., 0., 0.]) Note that the mask needs to be a bool array. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list