Numpy удалить столбец из массива, где первый элемент в столбце является 0 - PullRequest
0 голосов
/ 29 мая 2018

Если бы у меня был случайный массив numpy, как показано ниже:

myArray:

        [0  ,        0      ,  51.78  ,      17],
        [823.    ,   91.31  ,  51.63  ,      13],
        [819.    ,   93.03  ,  51.77  ,      52],
        [776.32  ,   93.85  ,  52.02  ,      34],
        [755.12  ,   92.48  ,  49.955 ,      77],
        [739.01  ,   97.68  ,  50.75  ,      48],
        [760.17  ,   98.26  ,  51.1   ,      12],
        [780.37  ,   98.82  ,  51.52  ,      13],
        [740.34  ,   98.5   ,  50.48  ,      17],
        [768.65  ,  104.86  ,  51.71  ,      97]]

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

myArray:

        [51.78  ,      17],
        [51.63  ,      13],
        [51.77  ,      52],
        [52.02  ,      34],
        [49.955 ,      77],
        [50.75  ,      48],
        [51.1   ,      12],
        [1.52   ,      13],
        [50.48  ,      17],
        [51.71  ,      97]]

ПРИМЕЧАНИЕ

Мне известно о np.delete, я не уверен, смогу ли я реализовать это для любого произвольного массива.Я ищу метод, в котором, если бы в случайном массиве, который имеет 0 в первой строке, я мог реализовать ту же функцию для любого массива, а не только для приведенного выше примера.

Любые советы будут оченьоценили!

1 Ответ

0 голосов
/ 29 мая 2018

Используйте Булево индексирование , и условие будет arr[0] != 0:

arr[:, arr[0] != 0]

#array([[ 51.78 ,  17.   ],
#       [ 51.63 ,  13.   ],
#       [ 51.77 ,  52.   ],
#       [ 52.02 ,  34.   ],
#       [ 49.955,  77.   ],
#       [ 50.75 ,  48.   ],
#       [ 51.1  ,  12.   ],
#       [ 51.52 ,  13.   ],
#       [ 50.48 ,  17.   ],
#       [ 51.71 ,  97.   ]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...