多元素1D数组上np.where的语法

时间:2017-05-31 11:44:58

标签: python arrays numpy

我有2个单独的以下结构数组,为了这个问题我已经简化了,我正在使用的数组是10,000个元素加上:

a = np.array([1,2,3])
b = np.array([4,5,6])

使用此处涉及的信息: How to convert a 2 1d arrays to one 1d arrays but both values should be inside one element

我创建了一个1D数组,其中引用1值返回2个值:

 c = np.array([a,b]).T
 print(c)
[[1 4]
 [2 5]
 [3 6]]

我希望实现的是执行np.where或类似语句,该语句通过查找最小对值或搜索2对值来返回此多元素数组的索引号。该语句将返回索引值,其中两对数字都是最低的或与哪个索引匹配。所以有一些与此相关的内容以及随后的输出:

输入是使用np.array().T生成的数组c:

[[1 4]
 [2 5]
 [3 6]]

所需的输出是沿着以下行的命令,它根据数组c中的最小值对返回索引值:

[1 4]

示例输出:

 np.where(min(c)) #Or Equivalent statement for locating position of an element
 >>> 0 #Index number 

或:

np.where(c[] == 1,4) #Alternative condition to search for values
>>> 0

我试过这个但是返回了一个值错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

理想情况下,我希望使用最有效的方法,因为我正在处理非常大的数组。

0 个答案:

没有答案