2012-06-21 49 views

回答

3

你可能知道,布爾數組可以用於索引,例如:

import numpy as np 
x = np.arange(10) 
x2 = x[x<5] 

對於布爾數組,np.all可讓您在一個給定的軸應用它:

y = np.arange(12).reshape(3,4) 

b = y < 6 
b1 = np.all(b, axis=0) 
b2 = np.all(b, axis=1) 

y1 = y[b1] 
y2 = y[b2] 

它只返回符合標準的陣列,所以形狀不會被保留。 (如果你確實需要保留的形狀,然後看看蒙面陣列。)

2

這會給你行的行索引,所有值都低於5或更高:

x = numpy.arange(100).reshape(20,5) 
numpy.where((x > 5).all(axis=1)^(x < 5).all(axis=1)) 

或更簡明地(但不是通過相同的邏輯繼續):

numpy.where(((x > 5)^(x < 5)).all(axis=1)) 

獲取數據,而不是指數,直接使用布爾結果:

x[((x > 5)^(x < 5)).all(axis=1)]