#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')