如何查看给定数组是否在两个数组之间

How to see if a given array is between two arrays

我正在使用 python 3.2.0 和 numpy。我想检查其中一个数组是否在另外两个指定数组之间。如果您同时建议一个功能或几个功能,我会很高兴。感谢任何帮助,因为这是一个学校项目,我需要快速提交。

如果你的意思是 arr1 的最后一项小于 input_arr 的所有项,并且 arr2 的第一项大于 input_arr 中的所有项,你可以这样做,用arr1 的 "biggest" 和 arr2 的 "smallest":

biggest = arr1[len(arr1)-1]
smallest = arr2[0]
between=True
for item in input_arr:
    if not (biggest<item and smallest>item): 
        between=False
        break 

或者,如果您允许等于(因此 [1,3,4],[4,6,8],[8 ,17,18] 为真)

这假设列表是连续的。如果不是,则必须循环遍历 arr1 以找到最大的数字,然后循环遍历 arr2 以首先找到最小的数字。

biggest=0
for item in arr1: 
    if item>biggest:
         biggest=item

smallest=arr2[0]
for item in arr2:
    if item<smallest:
       smallest = item

将其用作框架指南,不要只是复制和粘贴。如果您不理解它,因此无法构建自己的版本,您可能需要参加某种在线课程(例如 Codecademy)。同时,如果需要,先复制第二位,然后是第一位。

如果你有 3 个数组,

#lower bound
In[1]: small = np.zeros((3,3))

#Array we are testing
In[2]: test = np.ones((3,3))

#Upper bound
In[3]: large = np.ones((3,3))*2

然后你可以做一个 logical_and 并用布尔和对大小

测试整个数组
In[4]: np.logical_and(small<=testm,testm<=large).sum() == l.size
out[4]: True