[Numpy-discussion] Deleting a row from a matrix

Sebastian Haase haase at msg.ucsf.edu
Fri Aug 25 16:47:20 CDT 2006


On Friday 25 August 2006 08:01, Travis Oliphant wrote:
> Travis Oliphant wrote:
> >> Now of course: I often needed to "insert"  a column, row or section, ...
> >> ? I made a quick and dirty implementation for that myself:
> >> def insert(arr, i, entry, axis=0):
> >>     """returns new array with new element inserted at index i along axis
> >>     if arr.ndim>1 and if entry is scalar it gets filled in (ref.
> >> broadcasting)
> >>
> >>     note: (original) arr does not get affected
> >>     """
> >>     if i > arr.shape[axis]:
> >>         raise IndexError, "index i larger than arr size"
> >>     shape = list(arr.shape)
> >>     shape[axis] += 1
> >>     a= N.empty(dtype=arr.dtype, shape=shape)
> >>     aa=N.transpose(a, [axis]+range(axis)+range(axis+1,a.ndim))
> >>     aarr=N.transpose(arr, [axis]+range(axis)+range(axis+1,arr.ndim))
> >>     aa[:i] = aarr[:i]
> >>     aa[i+1:] = aarr[i:]
> >>     aa[i] = entry
> >>     return a
> >
> > Sure, it makes sense to parallel the delete function.
>
> Although there is already and insert function present in numpy....
>
> -Travis

Yeah - I saw that ...
maybe one could introduce consistent namings like
arr.copy_insert()
arr.copy_delete()
arr.copy_append()

for the new ones.  This emphasis the fact that a copy is created ... 
(Append is also a function often asked for when people expect "list 
capabilities" - did I miss others ?)

-Sebastian




More information about the Numpy-discussion mailing list