Numpy: двумерные массивы, удалить нечетные индексы и сохранить тот же формат массива - PullRequest
0 голосов
/ 21 февраля 2019

Мой массив выглядит следующим образом:

a = ([1,2],[2,3],[4,5],[3,8])

Я сделал следующее, чтобы удалить нечетные индексы:

a = [v for i, v in enumerate(a) if i % 2 == 0]

, но теперь он дает мне два разных массива вместо одного двухмерного:

a= [array([1, 2]), array([4, 5])]

Как мне сохранить тот же формат, что и в начале?спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Это так же просто, как

a[::2]

, что дает строки с четным индексом.

0 голосов
/ 21 февраля 2019

Использовать индексирование массива numpy, а не понимания:

c = a[list(range(0,len(a),2)),:]

Если вы определите c как вывод для понимания списка, он вернет list одномерных массивов numpy.Вместо этого, использование правильного индексирования поддерживает результат в виде пустого массива.

Обратите внимание, что вместо того, чтобы «удалять» нечетные индексы, мы указываем, что сохранить: взять все строки с четным индексом (list(range(0,len(a),2)) часть) и для каждой строки берут все элементы (часть :)

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