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

时间:2017-10-31 17:06:02

标签: python-3.x numpy python-3.2

我正在使用python 3.2.0和numpy。我想检查其中一个数组是否在两个其他指定数组之间。如果你一起建议一个或多个功能我想要它。任何帮助都表示赞赏,因为它是一个学校项目,我需要快速提交。

2 个答案:

答案 0 :(得分:0)

如果你的意思是arr1的最后一项如何小于input_arr的所有项,并且arr2的第一项大于input_arr中的所有项,你可以这样做,其中“最大”的是arr1和“最小”的ARR2:

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 

或者,您可以更改&lt;和/或&gt;到&lt; =或&gt; =如果你允许等于(所以[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)。同时,如果需要,先复制第二位,然后复制第一位。

答案 1 :(得分:0)

如果您有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