Как создать логическую маску, которая сохраняет столбец?

#python #arrays #numpy #boolean #mask

#python #массивы #numpy #логическое #маска

Вопрос:

например: скажем, у меня есть

 x = np.array[['positive','a'],['negative','b'],['positive','c'], ['negative','d']]
 

и я хочу новый массив со значением

 v = [['positive','a'], ['positive','c']]
 

Как это можно сделать? Спасибо за ваше время!

Комментарии:

1. Было бы неплохо, если бы вы опубликовали действительный код и четкую формулировку проблемы или, что еще лучше, действительно что-то попробовали.

2. @n404 Может быть, вам также следует изучить функцию numpy ….np.array — это функция

Ответ №1:

Исправление синтаксиса:

 In [359]: x = np.array([['positive','a'],['negative','b'],['positive','c'], ['ne
     ...: gative','d']])
In [360]: x
Out[360]: 
array([['positive', 'a'],
       ['negative', 'b'],
       ['positive', 'c'],
       ['negative', 'd']], dtype='<U8')
 

Просто выберите «строки» с индексами:

 In [361]: x[[0,2],:]
Out[361]: 
array([['positive', 'a'],
       ['positive', 'c']], dtype='<U8')
 

Эквивалентная логическая маска:

 In [362]: mask=np.zeros(4,bool)
In [363]: mask[[0,2]]=True
In [364]: mask
Out[364]: array([ True, False,  True, False])
In [365]: x[mask,:]
Out[365]: 
array([['positive', 'a'],
       ['positive', 'c']], dtype='<U8')