2017-08-16 62 views
0

我有一個numpy的陣列和另一個陣列:numpy的內部比較值返回更大的索引

[array([-1.67397643, -2.77258872]), array([-1.67397643, -2.77258872]), array([-2.77258872, -1.67397643]), array([-2.77258872, -1.67397643])]

  1. 哪個索引位置的numpy的陣列內部獲勝 - 即-1.67397643 > -2.77258872 - 這樣的第一值將是0 。
  2. 的numpy的陣列的最終輸出將是[0, 0, 1, 1](名單是罰款太)

我怎麼能這樣做?

回答

1

看來你有陣列的列表,所以我會通過讓他們適當numpy陣列啓動:

a = [array([-1.67397643, -2.77258872]), array([-1.67397643, -2.77258872]), array([-2.77258872, -1.67397643]), array([-2.77258872, -1.67397643])] 
b = np.array(a).T # .T transposes it. 
c = b[0] < b[1] 

C現在是array([False, False, True, True], dtype=bool),而且很可能成爲你的目的。如果你必須有[0,0,1,1]代替,則:

d = np.zeros(len(c)) 
d[c] = 1 

d現在是一個array([ 0., 0., 1., 1.])