如果給定的像2D陣列,不等式,並且其中功能
a = array([[2,4,9,8,473],[54,7,24,19,20]])
然後我怎樣才能寫陣列,其是值x和y之間的索引數組?
目前我已經有了:但是
where(5 > a > 10)
如果將給出一個輸出,如果我說,例如:
where(a > 5)
,但其中的功能不充分利用這個命令,一旦它會它應該輸出一個二維數組,有沒有一種方法可以輕鬆地堆疊它們?
如果給定的像2D陣列,不等式,並且其中功能
a = array([[2,4,9,8,473],[54,7,24,19,20]])
然後我怎樣才能寫陣列,其是值x和y之間的索引數組?
目前我已經有了:但是
where(5 > a > 10)
如果將給出一個輸出,如果我說,例如:
where(a > 5)
,但其中的功能不充分利用這個命令,一旦它會它應該輸出一個二維數組,有沒有一種方法可以輕鬆地堆疊它們?
什麼實際的成員可以使用邏輯運算符&
(和)|
(或)鏈不同條件在一起,所以對於你的情況,你可以這樣做:
np.where((a > 5) & (a < 10))
# (array([0, 0, 1]), array([2, 3, 1]))
# here np.where gives a tuple, the first element of which gives the row index, while the
# second element gives the corresponding column index
如果你想索引是其中每一行代表一個元素的數組,你可以堆疊起來:
np.stack(np.where((a > 5) & (a < 10)), axis=-1)
# array([[0, 2],
# [0, 3],
# [1, 1]])
或@Divakar評論使用np.argwhere((a > 5) & (a < 10))
。
你有你需要指定兩個指標,一個是其內部數組你引用,另一個用於數組你是指
你的意思是'5
雙面比較僅適用於標量值。對於一個數組,它會給出一個ValueError(因爲短路和''測試)。我詳細說明在http://stackoverflow.com/a/42802950/901925 – hpaulj