Удаление элементов из массива - PullRequest
2 голосов
/ 21 августа 2011

У меня есть пустой массив, и я хочу удалить первые 3 элемента массива.Я попытался это решение:

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

Это дает мне ошибку, что " ValueError: не может удалить элементы массива ".Я не понимаю, почему это так.Буду признателен за помощь, спасибо!

Ответы [ 2 ]

14 голосов
/ 21 августа 2011

Массивы Numpy имеют фиксированный размер, поэтому вы не можете просто удалить элемент из них. Самый простой способ достичь желаемого - использовать нарезку:

a = a[3:]

Это создаст новый массив, начиная с 4-го элемента исходного массива.

Для определенных сценариев нарезки просто недостаточно. Если вы хотите создать подмассив, состоящий из определенных элементов из исходного массива, вы можете использовать другой массив для выбора индексов:

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

Таким образом, в принципе, a[[1,4,5]] вернет массив, состоящий из элементов 1,4 и 5 исходного массива.

1 голос
/ 21 августа 2011

массивы numpy не поддерживают удаление элементов.Почему бы вам просто не использовать нарезку, чтобы добиться того, чего вы хотите?

a = a[3:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...