0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Pyintervals 超簡單解決你的數(shù)值區(qū)間處理問題

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-30 09:25 ? 次閱讀

Pyintervals 是一個用于數(shù)值區(qū)間計算的模塊,比如我們想要判斷一個數(shù)值是否處于一個、或者一系列區(qū)間范圍內(nèi),就可以使用Pyintervals模塊取締IF-ELSE語句以達(dá)到簡化代碼的目的。

如果你想一次性生成上千個區(qū)間閾值并進(jìn)行數(shù)值區(qū)間判斷,或根據(jù)數(shù)值生成成百上千個分類,那么這個模塊就是你的最佳選擇。

1.準(zhǔn)備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細(xì)指南

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install pyinterval

2.基本使用

使用Pyinterval做區(qū)間判斷是非常簡單的:

from interval import interval
a = interval[1,5]
# interval([1.0, 5.0])
print(3 in a)
# True

此外,你還可以構(gòu)建一個多區(qū)間:

from interval import interval
a = interval([0, 1], [2, 3], [10, 15])
print(2.5 in a)
# True

interval.hall 方法還可以將多個區(qū)間合并,取其最小及最大值為邊界:

from interval import interval
a = interval.hull((interval[1, 3], interval[10, 15], interval[16, 2222]))
# interval([1.0, 2222.0])
print(1231 in a)
# True

區(qū)間并集計算:

from interval import interval
a = interval.union([interval([1, 3], [4, 6]), interval([2, 5], 9)])
# interval([1.0, 6.0], [9.0])
print(5 in a)
# True
print(8 in a)
# False

3.生成多個閾值區(qū)間

如果你在做深度學(xué)習(xí)訓(xùn)練分類任務(wù),你的分類數(shù)量比較多,達(dá)到了上百個,請不要傻傻地使用IF-ELSE, 下面教你使用四行代碼生成上百個閾值區(qū)間。

假設(shè)你的值區(qū)間分布在0,1之間,每個閾值范圍為0.005,并有正負(fù)兩個方向。下面這4行代碼就能非常簡單地實現(xiàn)你想要的區(qū)間閾值:

from interval import interval
import numpy as np
threshold_list = np.arange(0.0, 1.0, 0.005)
intervals = [interval([threshold_list[i - 1], threshold_list[i]]) for i in range(1, len(threshold_list))]
intervals += [interval([-threshold_list[i], -threshold_list[i - 1]]) for i in range(len(threshold_list) - 1, 0, -1)]
print(len(intervals))
# 398
print(intervals[0], intervals[-1])
# interval([0.0, 0.005]) interval([-0.005, -0.0])

有了這個閾值,區(qū)間,你想要畫分類就非常簡單了,下面是一個簡單示例,實際工作中要因不同應(yīng)用場景改變使用方式。

target = 0.023
class_labels = {}
for index, interval_ in enumerate(intervals):
    if target in interval_:
        class_labels[target] = index

Pyintervals對于正在做大規(guī)模分類任務(wù)的同學(xué)而言是非常好用的模塊,建議有需要的朋友可以試一試。其他同學(xué)也可以收藏點贊記錄一下,說不定未來也會有應(yīng)用場景呢!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2658

    瀏覽量

    47294
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68237
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1413

    瀏覽量

    33987
收藏 人收藏

    評論

    相關(guān)推薦

    是否超越了運放的輸入共模區(qū)間

    或范圍,則輸出端就會遇到麻煩。先處理好這個重要細(xì)節(jié),則以后當(dāng)電路正確工作時,就會贊賞自己的選擇。 `
    發(fā)表于 10-24 21:06

    簡單實用的無線話筒。元器件很簡單那。

    ` 本帖最后由 gk320830 于 2015-3-7 05:59 編輯 簡單實用的無線話筒。元器件很簡單那。發(fā)燒友大銻發(fā)給我的。`
    發(fā)表于 08-20 19:37

    Labview圖像處理問題!??!

    求教關(guān)于Labview圖像處理問題,兩張圖片(兩次拍攝同一物體得到)在某些像素點上會有差別,可以取出這些有差別的像素點嗎???
    發(fā)表于 12-01 11:24

    有沒有新入手的,大家一起建個群,處理問題交流一下唄

    有沒有新入手的,大家一起建個群,處理問題交流一下唄
    發(fā)表于 06-24 17:01

    Labview實現(xiàn)二分法查找數(shù)值區(qū)間

    二分法是檢索里經(jīng)常用到的一種方法,可以實現(xiàn)對有序數(shù)組進(jìn)行檢索,本程序通過二分法實現(xiàn)對數(shù)據(jù)進(jìn)行區(qū)間匹配,并輸出最小匹配區(qū)間和匹配區(qū)間的索引值,尤其適合多段函數(shù)的數(shù)值計算。
    發(fā)表于 04-18 13:22

    字符串的處理問題

    我有一行輸入字符串“串口參數(shù):com3;9600;Even;8;1。本地網(wǎng)口參數(shù):192.168.22.10;29700”請問如何通過最簡單的方法將里面的每個參數(shù)值都提取出來,比如將上面字符串的 com3、9600、even……分別提取出來?
    發(fā)表于 09-02 11:19

    求教關(guān)于stm32單片機(jī)串口同步通信阻塞處理問題

    關(guān)于單片機(jī)串口同步通信阻塞處理問題,求分享這方面的技術(shù)資料,或者給一些建議
    發(fā)表于 11-05 13:39

    sqlite 簡單實用

    sqlite 簡單實用
    發(fā)表于 01-24 19:09

    電磁場數(shù)值計算的后處理

    簡述了電磁場數(shù)值計算后處理的意義; 研究了磁力線、彩色云圖、矢量圖的繪制算法,并以VC ++ 6
    發(fā)表于 08-26 14:29 ?0次下載
    電磁場<b class='flag-5'>數(shù)值</b>計算的后<b class='flag-5'>處理</b>

    LTE系統(tǒng)的小區(qū)間干擾協(xié)調(diào)技術(shù)

    LTE系統(tǒng)中采用頻率復(fù)用方式對小區(qū)間的干擾進(jìn)行協(xié)調(diào),可以適用于各種帶寬的業(yè)務(wù),實現(xiàn)簡單,并且對抑制小區(qū)間的干擾、改善小區(qū)邊緣用戶傳輸質(zhì)量有很好的效果。
    發(fā)表于 01-09 16:00 ?1840次閱讀

    學(xué)PLC技術(shù)簡單

    學(xué)PLC技術(shù)簡單 作者:蔡杏山 主編 出版時間:2013 《學(xué)技能簡單:學(xué)PLC技術(shù)簡單
    發(fā)表于 11-05 10:52 ?0次下載

    一篇文章秒殺三道區(qū)間相關(guān)的問題

    經(jīng)常有讀者問區(qū)間相關(guān)的問題,今天寫一篇文章,秒殺三道區(qū)間相關(guān)的問題。 所謂區(qū)間問題,就是線段問題,讓合并所有線段、找出線段的交集等等。主要有兩個技巧: 1、排序。常見的排序方法就是按
    的頭像 發(fā)表于 10-12 14:54 ?1851次閱讀
    一篇文章秒殺三道<b class='flag-5'>區(qū)間</b>相關(guān)的問題

    如何解決單bit和多bit跨時鐘處理問題?

    時鐘處理兩大類,本文以一個總線全握手跨時鐘域處理為例解析,單bit和多bit跨時鐘處理。這里需要注意是多bit含義比較廣泛和總線不是一個概念,如果多個bit之間互相沒有任何關(guān)系,其實,也就是位寬大于1的單bit跨時鐘
    的頭像 發(fā)表于 03-22 10:28 ?6731次閱讀

    知道如何去求解連續(xù)區(qū)間嗎?

    求解連續(xù)區(qū)間是數(shù)據(jù)分析、數(shù)據(jù)倉庫筆試面試中常考的SQL題目。
    的頭像 發(fā)表于 06-21 17:42 ?7324次閱讀

    Feko處理問題的方法

    )、橫向諧振法(TRM)、線方法(ML)和解析法等等。 在頻域,數(shù)值算法有:有限元法 ( FEM -- Finite Element Method)、矩量法( MoM -- Method
    的頭像 發(fā)表于 06-25 10:25 ?1499次閱讀
    Feko<b class='flag-5'>處理問題</b>的方法