Numpy比较里面的值以返回更大的索引

时间:2017-08-16 11:22:21

标签: 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](列表也可以)
  3. 我该怎么做?

1 个答案:

答案 0 :(得分: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.])