当前位置: 首页 > 面试题库 >

将一系列值映射到另一个

田博远
2023-03-14
问题内容

我正在寻找有关如何在Python中将一个范围值转换为另一范围值的想法。我正在从事硬件项目,正在从可返回一定范围值的传感器读取数据,然后使用该数据来驱动需要不同范围值的执行器。

例如,假设传感器返回的值在1到512的范围内,并且执行器由5到10的值驱动。我想要一个函数,我可以传递一个值和两个范围并取回该值映射到第二个范围。如果这样的函数被命名,translate则可以这样使用:

sensor_value = 256
actuator_value = translate(sensor_value, 1, 512, 5, 10)

在此示例中,我希望输出actuator_value为,7.5因为sensor_value处于可能的输入范围的中间。


问题答案:

一种解决方案是:

def translate(value, leftMin, leftMax, rightMin, rightMax):
    # Figure out how 'wide' each range is
    leftSpan = leftMax - leftMin
    rightSpan = rightMax - rightMin

    # Convert the left range into a 0-1 range (float)
    valueScaled = float(value - leftMin) / float(leftSpan)

    # Convert the 0-1 range into a value in the right range.
    return rightMin + (valueScaled * rightSpan)

您可能会使用代数来提高效率,但会降低可读性。



 类似资料:
  • 我是Java中Spring框架的新手。并且有一些问题… 我的应用程序使用Spring、Spring seq的安全性、Hibernate框架。 我正在编写一些简单的应用程序。 我有一个页面,可以通过Hibernate将用户添加到db。 用户类: 角色类: 保存在控制器中: 在UserDAO中保存 我在页面上有一个选择块,我可以在其中选择用户角色作为字符串。 所以在保存用户时,我有 所以据我所知,我应

  • 问题内容: [‘a’,’a’,’b’,’c’,’c’,’c’] 至 和 问题答案: x=[‘a’,’a’,’b’,’c’,’c’,’c’] >>> map(x.count,x) [2, 2, 1, 3, 3, 3] >>> dict(zip(x,map(x.count,x))) {‘a’: 2, ‘c’: 3, ‘b’: 1} >>>

  • 我有一个类似的例子,类似于我的另一个问题Pandas:在多个列上使用字典映射列,但是现在,我想不直接使用列“category”的max()值,而是间接使用它来填充第四列“category_name”中的None与问题1中的情况相同,但是增加了一个包含字符串的列。 此处“类别”列始终是填充的,而“类别名称”列有一些缺失值: 我想再一次用值填充无/南,我想使用的逻辑是:使用列“类别”中最大值的行的列“

  • 我使用的是JPA,在我的DB中我有一个表,列为:id、firstname和firstAndLastname 所以我做了一个来映射数据,我可以从另一个表中获取,但是我没有持久化它,因为DB中没有列lastname。 如何存储在列中,该列是firstname和lastname的串联,并存储在特定的列中,例如:firstname:John,lastname:Doe=>firstAndLastname:J

  • 问题内容: 我试图找到一种数据结构,该数据结构从一系列值中获取特定值并将其映射到键。 例如,我具有以下条件: 从1到2.9,我想将其映射到A。 从4到6,我想将其映射到B。 从6.5到10,我想将其映射到C。 我的值为5,我想将其映射到键。因此,根据上述条件,我应该将其映射到B。 Java中是否有任何人可以推荐给我解决问题的数据结构? 目前,我正在使用只能将值映射到键的哈希表。我试图将值的范围映射

  • 我试图找到一种数据结构,它从一系列值中获取特定值并将其映射到键。 例如,我有以下条件: 从1到2.9,我想把它映射到A. 从4到6,我要把它映射到B. 从6.5到10,我想把它映射到C. 我的值为 5,我想将其映射到一个键。所以基于上述条件,我应该将其映射到B。 Java中有什么数据结构可以推荐给我来解决这个问题吗? 目前我正在使用一个只能将值映射到键的哈希表。我尝试将值的范围映射到哈希表中存在的