Python:通过向上舍入将列表中的 # 个值分配给 bin

2024-01-07

我想要一个可以接受一系列和一组垃圾箱的函数,并且基本上四舍五入到最近的垃圾箱。例如:

my_series = [ 1, 1.5, 2, 2.3,  2.6,  3]
def my_function(my_series, bins):
    ...

my_function(my_series, bins=[1,2,3])
> [1,2,2,3,3,3]

这似乎非常接近Numpy 数字化 http://docs.scipy.org/doc/numpy/reference/generated/numpy.digitize.html旨在执行此操作,但它会产生错误的值(星号表示错误值):

np.digitize(my_series, bins= [1,2,3], right=False)
> [1, 1*, 2, 2*, 2*, 3]

从文档中可以清楚地看出错误的原因:

我返回的每个索引都是这样的bins[i-1] 如果垃圾箱是 单调递增,或者bins[i-1] > x >= bins[i]如果垃圾箱是 单调递减。如果 x 中的值超出范围 bins、0 或 len(bins) 根据需要返回。如果正确的是真的, 然后关闭右侧的 bin,以便索引 i 是这样的 bins[i-1] = x > bins[i]`` 如果 bins 是 分别单调增加或减少。

如果我输入递减的值并将“right”设置为 True,我可以更接近我想要的...

np.digitize(my_series, bins= [3,2,1], right=True)
> [3, 2, 2, 1, 1, 1]

但随后我必须想出一种方法,基本上有条不紊地将最低数字分配 (1) 与最高数字分配 (3) 颠倒过来。当只有 3 个垃圾箱时,这很简单,但当垃圾箱数量变多时,就会变得更加麻烦……必须有一种更优雅的方法来完成这一切。


我们可以简单地使用np.digitize以其right选项设置为True获取索引,然后提取相应的元素bins, 带进np.take,就像这样-

np.take(bins,np.digitize(a,bins,right=True))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:通过向上舍入将列表中的 # 个值分配给 bin 的相关文章

  • Python动态导入脚本,需要有其__name__ == "__main__"代码才能被调用

    当从另一个脚本导入 python 脚本时 我想要受经典保护的脚本代码 if name main 要运行 我怎样才能运行该代码 我想做的是从 python 脚本动态更改模块 然后导入现有脚本 该脚本应该看到所做的更改并运行其 main 像Py
  • 从终端调用时 uvicorn 不工作

    我尝试通过 pip3 在系统上安装 uvicorn 这有效 但是我无法从命令行运行相同的命令 有关如何解决此问题的任何指示 Requirement already satisfied uvicorn in home vhawk19 loca
  • Python 将列表中的字符串转换为数字

    我遇到了以下错误消息 以 10 为基数的 int 的文字无效 2 2 外部用单引号括起来 内部用双引号括起来 该数据位于primes列出使用print primes 0 样本数据在primes list 2 3 5 7 The primes
  • cv2.face.mindistancepredictcollector() 错误

    我已经安装了带有额外模块的 opencv 3 1 0 但是当我尝试使用 gt gt gt s cv2 face MinDistancePredictCollector 它返回一个错误 Traceback most recent call l
  • Python 按文件夹模块导入

    我有一个目录结构 example py templates init py a py b py a py and b py只有一个类 名称与文件相同 因为它们是猎豹模板 纯粹出于风格原因 我希望能够在中导入和使用这些类example py像
  • 地图与星图的性能?

    我试图对两个序列进行纯Python 没有外部依赖 逐元素比较 我的第一个解决方案是 list map operator eq seq1 seq2 然后我发现starmap函数来自itertools 这看起来和我很相似 但事实证明 在最坏的情
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • numpy 数组最快的保存和加载选项

    我有一个生成二维的脚本numpy数组与dtype float和形状的顺序 1e3 1e6 现在我正在使用np save and np load对数组执行 IO 操作 然而 这些函数对于每个数组都需要几秒钟的时间 是否有更快的方法来保存和加载
  • 在 Windows 上将 NumPy 与 BLAS 链接

    我正在尝试在 Windows 系统上安装 Theano 并且需要安装 BLAS 和 LAPACK 我的 System32 文件夹中有这些的 dll 文件 当我运行 numpy config来自 Anaconda 的 show 库的路径正确显
  • PyPI 项目页面中的“Py 版本”是什么意思?这有关系吗?

    我注意到 大多数在 PyPI 上发布的项目在其项目页面中都包含 Py 版本 元数据 但它们的值各不相同 如果包不是通用包或不是纯 python 包 那么它们的值是不同的 这是可以理解的 以便表示它们的目标平台 例如鼻页 https pypi
  • 将 csv 文件按多列拆分为 panda 数据框

    我有一个包含多列的 tsv 文件 有 10 多列 但对我来说重要的列是名称为 user name shift id url id 的列 我想创建一个数据框 首先根据用户名分隔整个 csv 文件 即只有具有相同用户名的行才会分组在一起 从该块
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 为图例中的点设置固定大小

    我正在制作一些散点图 我想将图例中的点的大小设置为固定的相等值 现在我有这个 import matplotlib pyplot as plt import numpy as np def rand data return np random
  • Python unittest - 与assertRaises相反?

    我想编写一个测试来确定在给定情况下不会引发异常 测试是否有异常很简单is上调 sInvalidPath AlwaysSuppliesAnInvalidPath self assertRaises PathIsNotAValidOne MyO
  • 收到的标签值 1 超出了 [0, 1) 的有效范围 - Python、Keras

    我正在使用具有张量流背景的 keras 开发一个简单的 cnn 分类器 def cnnKeras training data training labels test data test labels n dim print Initiat
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • Beautiful Soup 获取动态表数据

    我有以下代码 url https www basketball reference com leagues NBA 2017 standings html all expanded standings html urlopen url so
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 安排 Asyncio 任务每 X 秒执行一次?

    我正在尝试创建一个 python 不和谐机器人 它将每隔 X 秒检查一次活跃会员 并根据会员的在线时间奖励积分 我正在使用 asyncio 来处理聊天命令 这一切都正常 我的问题是找到一种方法来安排每隔 X 秒异步检查一次活动成员 我已经阅
  • 使用 Pandas 和 Group By 绘制堆叠直方图

    我正在使用如下所示的数据集 Gender Height Width Male 23 4 4 4 Female 45 4 4 5 我想可视化高度和宽度的堆叠直方图 我希望每个图有两个堆叠的直方图 每个性别一个 这是文档中的堆叠直方图 如果存在

随机推荐

  • 如何声明一个结构体数组并稍后对其进行初始化?

    我有一个结构 struct Point x u32 y u32 我想要两个Points 在两个不同的变量中 我想要先声明并稍后初始化 它可以很好地处理单独的值 let p0 Point let p1 Point p0 Point x 1 y
  • 无法在 InstallShield 2012 限量版中创建非广告快捷方式

    我已经为 Visual Studio 2012 解决方案创建了 InstallShield 2012 Limited Edition 安装程序项目 我已配置为创建 发送到 快捷方式 但是 它会创建一个广告快捷方式 因此 Windows 实际
  • 为什么 Ansible 不读取相对路径中的模板?

    我正在使用 Ansible 但模板路径存在一些问题 这是我执行时的错误输出 ansible playbook i hosts site yml PLAY users GATHERING FACTS ok 10 0 3 240 TASK te
  • 在 Python 中使用字典代替 Case/Switch 语句

    我想随机化一个初始化为完整的魔方 所有颜色都在正确的侧面 我有旋转立方体的移动函数 我想连续随机选择 50 个函数来正确随机化它 我做这个项目是为了更多地了解 Python 因为我主要使用 C 而且我发现 Python 没有 case sw
  • 如何在页面加载之前提交ajax请求

    我想通过ajax请求检查用户的登录状态 根据用户是否登录 我想显示用户名 密码输入或用户名 目前 请求在 body onload 上发送 并显示 prgoress 指示器 直到响应到达 有没有更好的办法 我们假设需求规定不应有直接的服务器端
  • 如何修复汇编语言中的凯撒密码实现以读取多位密钥?

    我的代码实现了凯撒密码 它询问用户输入文件的名称 其中包含我想要加密 解密的字符串 输出文件的名称和密钥 密码 我的问题是它只读取密钥的第一个数字 如果我给它一个两位数的数字作为密钥 那么它只读取第一个 例如 14 15 它只读取 1 我该
  • React Hooks - 将引用传递给子级以使用 ScrollIntoView

    我有两个组件 一位父母和一个孩子 在父组件内我有一个按钮 如果用户单击该按钮 我想对子组件内的另一个按钮执行 ScrollIntoView 我想我想定义对子按钮 a 的引用 以便我在父按钮 onClick 中可以执行以下操作 ref scr
  • 如何使用 json 将图像发送到 iPhone 中的服务器?

    我正在使用 json 与服务器通信 我想发布并从服务器获取图像 如何将json格式的图像转换为发送它 以及当我们获取json格式的图像并将其转换回图像时 请参阅HTML 规范的相关部分 http www w3 org TR html401
  • kubernetes 私有注册表不起作用

    我按照以下链接配置 kubernetes 私有注册表 https github com kubernetes kubernetes tree master cluster addons registry https github com k
  • 错误:与“cc”链接失败:退出代码:1

    我有一个single rs 文件 当我编译它时rustc test1 rs 我收到错误 error linking with cc failed exit code 1 note cc m64 L usr local Cellar rust
  • 如何从页面加载时默认出现的选定文本中删除文本选择?

    当我们刷新或重新加载页面时 单击下面的图像部分 您可以在圆圈中间看到选定的文本 讨论目标和关注点 现金流量分析 税务分析 等等 例子 http ivyfa advisorproducts com financial planning pro
  • 在 where 子句中使用函数的 Oracle 性能

    在存储过程 有一个名为 paramDate 的日期参数 中 我有一个像这样的查询 select id name from customer where period aded to char paramDate mm yyyy Oracle
  • fetchedResultsContainer 核心数据中出现严重应用程序错误

    尝试添加记录时出现以下错误 严重的应用程序错误 例外 在核心数据更改期间被捕获 加工 这通常是一个错误 在观察者之内 NSManagedObjectContextObjectsDidChangeNotification 索引 0 对于 us
  • Android 应用程序中的音频声音太低

    我录制了一些音频文件以在我的应用程序中使用 大约有 50 个 所以我不想再次录制所有音频文件 我最近使用 SoundPool 在真实设备而不是模拟器上播放音频文件 你几乎听不到它们 在模拟器上 我的电脑音量设置为最大 设备音量设置为最大 我
  • 如何在Flexbox中每行显示3个项目?

    我有一个列表 我想显示我的li水平元素 每行 3 个 我一直在努力得到我想要的东西 但没有运气 有解决办法吗 div class serv ul foreach App Http Controllers HomeController get
  • 是否有 Linq 方法可以将单个项目添加到 IEnumerable 中?

    我正在尝试做这样的事情 image Layers 它返回一个IEnumerable对于除Parent层 但在某些情况下 我只想这样做 image Layers With image ParentLayer 因为与通常使用的数百次相比 它只在
  • Git pull:错误:条目 foo 未更新。无法合并

    我正在尝试从远程分支更新我的存储库 并且当我执行 git pull 时不断收到此错误 我没有进行任何本地更改 即使做了 我也不需要保留它们 我试过了 git reset hard 我遇到了同样的问题 似乎唯一有效的方法是删除有问题的文件并再
  • PDO 获取多个插入 ID

    使用 PDO 运行以下查询 实际上 我使用准备好的语句 但有同样的问题 INSERT INTO MyTable MyField VALUES Row1 Row2 如何获取与以下内容相关的记录的 IDRow1 and Row2 db gt l
  • 有 C++ 的在线名称解析器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我收到了一个相当长且令人困惑的链接错误 如果我可以将其粘贴到某个网站上的某个文本框中并为我提供未损坏的
  • Python:通过向上舍入将列表中的 # 个值分配给 bin

    我想要一个可以接受一系列和一组垃圾箱的函数 并且基本上四舍五入到最近的垃圾箱 例如 my series 1 1 5 2 2 3 2 6 3 def my function my series bins my function my seri