我在比较两个(在我的情况下是多维的)数组时,找不到一种简单直接的按字典序比较的方法。
例如:
a = [1,2,3,4]
b = [4,0,1,6]
对于 a < b
,我想获得true
,其中我得到了[true,false,false,true]
。
对于a > b
,我想获得false
,其中我得到了[false,true,true,false]
。
a
是否小于或大于 b
,那么以下内容可以起作用。def fn(a, b):
# finds index of the first non matching element
idx = np.where( (a>b) != (a<b) )[0][0]
if a[idx] < b[idx]: print "a < b"
if a[idx] > b[idx]: print "a > b"
== True
,因为它是暗示的(而且运行缓慢),并将 ^
拼写为 !=
以增加清晰度。 - Eric(a>b) != (a<b)
代替a!=b
来处理nan
呢? - Eric
ndarray.sort
不按字典顺序排序。 - user2357112