2017-08-16 60 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.])