在Python中查找值在两个数字之间的位置

埃里克·布朗

我有一个问题需要确定一个值在其他值之间的位置。这是一个可怕的长期问题……但这是一个令人困惑的问题(至少对我而言)。

可以使用以下数据查看问题的最简单表示形式:

我的值是24.0。我需要确定该值在六个“范围”内的位置。范围是:10、20、30、40、50、60。我需要计算值在范围内的何处着陆。我可以看到它介于20到30之间。一个简单的if语句可以为我找到它。

我的用于检查值是否在20到30之间的if语句为:

if value >=20 and value <=30:

很简单的东西。

我遇到的麻烦是当我尝试对输出进行排名时。

例如,假设每个范围值都被赋予了整数表示形式。10 = 1、20 = 2、30 = 3、40 = 4、50 = 5、60 = 6、70 = 7。另外,可以说,如果该值小于两个值之间的中点,则会为其分配较低值的等级输出。例如,我的值24在20到30之间,因此应将其排名为“ 2”。

在这个示例中,这本身非常简单,但是使用现实世界的数据,我具有如下范围和值:

  • 值= -13,范围= 5,35,30,25,-25,-30,-35
  • 值= 50,范围= 5,70,65,60,40,35,30
  • 值= 6,范围= 1,40,35,30,5,3,0

另一个皱纹-范围的顺序很重要。在上面,第一个范围号等于1的等级,第二个范围号等于2的等级,以此类推,正如我在上面几段中提到的那样。

范围值中的负数引起麻烦,直到我决定使用百分位排序,才能完全消除负值。为此,我使用从Map每个列表值到其相应百分位数的答案,如下所示:

y=[stats.percentileofscore(x, a, 'rank') for a in x]

其中x是范围和我正在检查的值。通过在上面运行value = 6个值将导致y为:

x = [1, 40, 35, 30, 5, 3, 0, 6]

y=[stats.percentileofscore(x, a, 'rank') for a in x]

查看“ y”,我们将其视为:

[25.0, 100.0, 87.5, 75.0, 50.0, 37.5, 12.5, 62.5]

我现在需要做的是根据以下排名图将最后一个值(62.5)与其他值进行比较,以查看最终排名(从1到7的排名):

1=25.0
2=100.0
3=87.5
4=75.0
5=50.0
6=37.5
7=12.5

如果该值介于两个值之间,则应为其分配较低的等级。在此示例中,62.5值的最终排名值为4,因为它位于75.0(等级= 4)和50.0(等级= 5)之间。

如果我采用“ y”并将其分解并在多个if / else语句中使用这些值,则它适用于部分但不是全部(-13示例无法正常工作)。

我的问题是这样的:

如何在不构建巨大的if / elif结构的情况下,以编程方式分析任何值/范围集以找到最终排名?以下是一些样本集。排名按以下显示顺序排列(范围= 1中的第一个值,秒= 2,依此类推)

  • 值= -13,范围= 5、35、30、25,-25,-30,-35->排名= 4
  • 值= 50,范围= 5、70、65、60、40、35、30->排名= 4
  • 值= 6,范围= 1,40,35,30,5,3,0->等级= 4
  • 值= 24,范围= 10、20、30、40、50、60、70->排名= 2
  • 值= 2.26,范围= 0.1、0.55、0.65、0.75、1.75、1.85、1.95->排名= 7
  • 值= 31,范围= 10、20、30、40、60、70、80->排名= 3

我可能会在python中缺少一些很容易做到的事情...但是我将头撞在墙上已经好几天了,没有任何进展。

任何帮助/指针,不胜感激。

vk1011

以第一个例子为例-13

y = [5, 35, 30, 25, -25, -30, -35]
value_to_check = -13

max_rank = len(y) # Default value in case no range found (as per 2.26 value example)

for ii in xrange(len(y)-1,0,-1):
    if (y[ii] <= value_to_check <= y[ii-1]) or (y[ii] >= value_to_check >= y[ii-1]):
        max_rank = ii
        break

>>> max_rank
4

以函数形式:

def get_rank(y, value_to_check):

    max_rank = len(y) # Default value in case no range found (as per 2.26 value example)

    for ii in xrange(len(y)-1,0,-1):
        if (y[ii] <= value_to_check <= y[ii-1]) or (y[ii] >= value_to_check >= y[ii-1]):
            max_rank = ii
            break

    return max_rank

您打电话的时候:

>>> get_rank(y, value_to_check)
4

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP搜索数组中两个数字之间的值

来自分类Dev

查找两个数字之间小数点后数字的位置

来自分类Dev

查找两个数字之间的平方根数

来自分类Dev

查找范围介于两个数字之间的点

来自分类Dev

查找 Number 是否在两个数字之间

来自分类Dev

查找列表中两个数字之间的重叠和差距

来自分类Dev

在文件的一列中查找两个数字之间的差异b / w?

来自分类Dev

如果数组中的值介于两个数字之间,是否可以从中返回值?

来自分类Dev

在数组中的两个数字之间存储数字

来自分类Dev

Python:如何根据用户输入在两个数字之间的列表中输入数字?

来自分类Dev

查找两个数组之间的添加或删除值

来自分类Dev

计算两个数字之间的值(Google表格)

来自分类Dev

如何在R中的两个数据框之间查找和替换值

来自分类Dev

在java中查找两个数组之间的公共最小值

来自分类Dev

如何在numpy数组中返回两个数字之间的值的索引

来自分类Dev

需要检查值是否在列表中的两个数字之间

来自分类Dev

从两个数组列表中查找最接近的数字

来自分类Dev

在两个数组中查找最接近的数字

来自分类Dev

在两个数组中查找最接近的数字

来自分类Dev

从两个数组列表中查找最接近的数字

来自分类Dev

在matplotlib中增加图中两个数字之间的除数

来自分类Dev

列表中两个数字之间的JavaScript函数?

来自分类Dev

循环数值序列中两个数字之间的距离

来自分类Dev

数据框中两个数字之间的除法

来自分类Dev

如何在python中检索两个数字之间的列表元素?

来自分类Dev

如何在python中以“-”符号分隔的两个数字之间获取值?

来自分类Dev

在 Python 中的列表的每个数字之间查找 1000 个线性插值

来自分类Dev

两个数字之间的指数概率?

来自分类Dev

Java在两个数字之间相乘

Related 相关文章

  1. 1

    PHP搜索数组中两个数字之间的值

  2. 2

    查找两个数字之间小数点后数字的位置

  3. 3

    查找两个数字之间的平方根数

  4. 4

    查找范围介于两个数字之间的点

  5. 5

    查找 Number 是否在两个数字之间

  6. 6

    查找列表中两个数字之间的重叠和差距

  7. 7

    在文件的一列中查找两个数字之间的差异b / w?

  8. 8

    如果数组中的值介于两个数字之间,是否可以从中返回值?

  9. 9

    在数组中的两个数字之间存储数字

  10. 10

    Python:如何根据用户输入在两个数字之间的列表中输入数字?

  11. 11

    查找两个数组之间的添加或删除值

  12. 12

    计算两个数字之间的值(Google表格)

  13. 13

    如何在R中的两个数据框之间查找和替换值

  14. 14

    在java中查找两个数组之间的公共最小值

  15. 15

    如何在numpy数组中返回两个数字之间的值的索引

  16. 16

    需要检查值是否在列表中的两个数字之间

  17. 17

    从两个数组列表中查找最接近的数字

  18. 18

    在两个数组中查找最接近的数字

  19. 19

    在两个数组中查找最接近的数字

  20. 20

    从两个数组列表中查找最接近的数字

  21. 21

    在matplotlib中增加图中两个数字之间的除数

  22. 22

    列表中两个数字之间的JavaScript函数?

  23. 23

    循环数值序列中两个数字之间的距离

  24. 24

    数据框中两个数字之间的除法

  25. 25

    如何在python中检索两个数字之间的列表元素?

  26. 26

    如何在python中以“-”符号分隔的两个数字之间获取值?

  27. 27

    在 Python 中的列表的每个数字之间查找 1000 个线性插值

  28. 28

    两个数字之间的指数概率?

  29. 29

    Java在两个数字之间相乘

热门标签

归档