pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

numpy 或 scipy 有哪些可能的計算可以返回 NaN?

What are some possible calculations with numpy or scipy that can return a NaN?(numpy 或 scipy 有哪些可能的計算可以返回 NaN?)
本文介紹了numpy 或 scipy 有哪些可能的計算可以返回 NaN?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在 Python 中,哪些最常見的操作會導致使用 NumPy 或 SciPy 時產生的 NaN?

What are the most common operations that would cause a NaN, in Python, which originate while working with NumPy or SciPy?

例如:

1e500 - 1e500
>>> nan

這種行為的原因是什么,為什么它不返回 0?

What is the reasoning for this behavior and why does it not return 0?

推薦答案

如果您執行以下任何一項操作而沒有在浮點環境中徘徊,您應該得到一個之前沒有的 NaN:

If you do any of the following without horsing around with the floating-point environment, you should get a NaN where you didn't have one before:

p>

  • 0/0(頂部和底部都可以)
  • inf/inf(在頂部和底部簽名)
  • inf - inf(-inf) + infinf + (-inf)(-inf) -(-inf)
  • 0 * infinf * 0(在兩個因子上都簽名)
  • sqrt(x)x <0
  • fmod(x, y)y = 0x 是無限的;這里 fmod 是浮點余數.
    • 0/0 (either sign on top and bottom)
    • inf/inf (either sign on top and bottom)
    • inf - inf or (-inf) + inf or inf + (-inf) or (-inf) - (-inf)
    • 0 * inf and inf * 0 (either sign on both factors)
    • sqrt(x) when x < 0
    • fmod(x, y) when y = 0 or x is infinite; here fmod is floating-point remainder.

    機器算術這些方面的規范參考是 IEEE 754規范.第 7.1 節描述了無效操作異常,這是在您即將獲得 NaN 時引發的異常.IEEE 754 中的異常"與編程語言上下文中的含義不同.

    The canonical reference for these aspects of machine arithmetic is the IEEE 754 specification. Section 7.1 describes the invalid operation exception, which is the one that is raised when you're about to get a NaN. "Exception" in IEEE 754 means something different than it does in a programming language context.

    許多特殊的函數實現記錄了它們在嘗試實現的函數的奇異點處的行為.例如,參見 atan2log 的手冊頁.

    Lots of special function implementations document their behaviour at singularities of the function they're trying to implement. See the man page for atan2 and log, for instance.

    您具體詢問的是 NumPy 和 SciPy.我不確定這是否只是簡單地說我在詢問 NumPy 引擎蓋下發生的機器算法"還是我在詢問 eig() 之類的東西".我假設是前者,但這個答案的其余部分試圖與 NumPy 中的高級函數建立模糊的聯系.基本規則是:如果一個函數的實現犯了上述罪過之一,你會得到一個 NaN.

    You're asking specifically about NumPy and SciPy. I'm not sure whether this is simply to say "I'm asking about the machine arithmetic that happens under the hood in NumPy" or "I'm asking about eig() and stuff." I'm assuming the former, but the rest of this answer tries to make a vague connection to the higher-level functions in NumPy. The basic rule is: If the implementation of a function commits one of the above sins, you get a NaN.

    例如,對于 fft,如果您的輸入值在 1e1010 左右或更大并且無聲,您很可能會得到 NaNs如果您的輸入值在 1e-1010 左右或更小,則會丟失精度.不過,除了真正可笑的縮放輸入之外,使用 fft 是相當安全的.

    For fft, for instance, you're liable to get NaNs if your input values are around 1e1010 or larger and a silent loss of precision if your input values are around 1e-1010 or smaller. Apart from truly ridiculously scaled inputs, though, you're quite safe with fft.

    對于涉及矩陣數學的事情,如果您的數字很大您的矩陣非常病態,NaN 可能會突然出現(通常通過 inf - inf 路線).關于如何被數值線性代數搞砸的完整討論太長了,不屬于答案.我建議您花幾個月的時間閱讀一本數值線性代數書(Trefethen 和 Bau 很受歡迎).

    For things involving matrix math, NaNs can crop up (usually through the inf - inf route) if your numbers are huge or your matrix is extremely ill-conditioned. A complete discussion of how you can get screwed by numerical linear algebra is too long to belong in an answer. I'd suggest going over a numerical linear algebra book (Trefethen and Bau is popular) over the course of a few months instead.

    在編寫和調試不應該"生成 NaN 的代碼時,我發現有用的一件事是告訴機器在發生 NaN 時進行陷阱.在 GNU C 中,我這樣做:

    One thing I've found useful when writing and debugging code that "shouldn't" generate NaNs is to tell the machine to trap if a NaN occurs. In GNU C, I do this:

    #include <fenv.h>
    feenableexcept(FE_INVALID);
    

    這篇關于numpy 或 scipy 有哪些可能的計算可以返回 NaN?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

    【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Python 3 Float Decimal Points/Precision(Python 3 浮點小數點/精度)
Converting Float to Dollars and Cents(將浮點數轉換為美元和美分)
Python float to ratio(Python浮動比率)
How to manage division of huge numbers in Python?(如何在 Python 中管理大量數字的除法?)
mean from pandas and numpy differ(pandas 和 numpy 的意思不同)
Function to determine if two numbers are nearly equal when rounded to n significant decimal digits(用于確定兩個數字在舍入到 n 個有效十進制數字時是否幾乎相等的函數)
主站蜘蛛池模板: 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 浙江自考_浙江自学考试网 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 周口风机|周风风机|河南省周口通用风机厂 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 鄂泉泵业官网|(杭州、上海、全国畅销)大流量防汛排涝泵-LW立式排污泵 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 劳动法网-专业的劳动法和劳动争议仲裁服务网 | 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 永嘉县奥阳陶瓷阀门有限公司| Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 茶楼装修设计_茶馆室内设计效果图_云臻轩茶楼装饰公司 | 新疆散热器,新疆暖气片,新疆电锅炉,光耀暖通公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 365文案网_全网创意文案句子素材站 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 泉州陶瓷pc砖_园林景观砖厂家_石英砖地铺石价格 _福建暴风石英砖 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 |