Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deleting Elements from an array

Tags:

python

numpy

I have a numpy array and I want to delete the first 3 elements of the array. I tried this solution:

           a = np.arange(0,10)
           i=0
           while(i<3):
             del a[0]
             i=i+1

This gives me an error that "ValueError: cannot delete array elements". I do not understand why this is the case. i'd appreciate the help thanks!

like image 838
dawnoflife Avatar asked Aug 21 '11 16:08

dawnoflife


2 Answers

It works for me:

import numpy as np
a = np.delete(a, k)

where "a" is your numpy arrays and k is the index position you want delete.

Hope it helps.

like image 52
Anderson Oliveira Avatar answered Oct 22 '22 22:10

Anderson Oliveira


Numpy arrays have a fixed size, hence you cannot simply delete an element from them. The simplest way to achieve what you want is to use slicing:

a = a[3:]

This will create a new array starting with the 4th element of the original array.

For certain scenarios, slicing is just not enough. If you want to create a subarray consisting of specific elements from the original array, you can use another array to select the indices:

>>> a = arange(10, 20)
>>> a[[1, 4, 5]]
array([11, 14, 15])

So basically, a[[1,4,5]] will return an array that consists of the elements 1,4 and 5 of the original array.

like image 38
Björn Pollex Avatar answered Oct 22 '22 22:10

Björn Pollex