2015-02-28 3 views
0

I'm совершенно новое, используя Numpy, и у меня есть эта проблема:печать строки, которые имеют значение х в последнем столбце

Имея этот массив:

x = np.array([[ 1, 2, 0],[ 4, 5, 0],[ 7, 8, 1],[10, 11, 1]]) 

>[[ 1 2 0] 
[ 4 5 0] 
[ 7 8 1] 
[10 11 1]] 

Как я могу напечатать строки с 1 в последнем столбце? Я хотел бы получить что-то вроде этого:

>[[ 7 8 1] 
[10 11 1]] 
+0

В отличие от сайтов форума, мы не используем «Спасибо», или «Любая помощь оценена», или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -Простое-от-сообщений). Кстати, это «Спасибо заранее», а не «Спасибо в пользу». –

ответ

0

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

>>> x[:,-1] 
array([0, 0, 1, 1]) 
>>> x[:,-1]==1 
array([False, False, True, True], dtype=bool) 
>>> x[x[:,-1]==1] 
array([[ 7, 8, 1], 
     [10, 11, 1]]) 
0

Пожалуйста, попробуйте следующее:

y = [ a for a in x if a[-1] == 1 ] 
print y 

Приветствия, Alex

Смежные вопросы