2015-04-08 3 views
0

Простой вопрос ... Я надеюсь ...Numpy Выбрать индексы со сложными условиями

У меня есть матрица, в, размер (пХт)

a = np.matrix([[1,2,3],[3,2,1],[6,4,1]]) 

и я например, для извлечения матрицы bool, b, размера (nxm) для следующего условия;

b = 3 <a> 7 and a != 6 

Однако он вызывает следующую ошибку.

Значение истинности массива с более чем одним элементом неоднозначно. Использование a.any() или a.all()

Любая помощь в этом, потому что я довольно застрял.

Cheers!

+0

Вы действительно хотите использовать матрицы? См. [This] (http://stackoverflow.com/q/4151128/1461850) – atomh33ls

ответ

1

Вы не можете использовать and с массивами, как вы пытаетесь сравнить одно значение с массивом вы должны использовать &, также необходимо приложить условия, указанные в скобках из-за приоритета операторов:

In [56]: 

a[(a > 3) & (a < 7) & (a != 6)] 
Out[56]: 
matrix([[4]]) 
+0

отлично это работало как шарм :) –