scipy curve_fit 不喜欢数学模块

2023-12-08

在尝试创建一个示例时scipy.optimize curve_fit我发现scipy似乎与Python的不兼容math模块。而函数f1工作正常,f2抛出错误消息。

from scipy.optimize import curve_fit
from math import sin, pi, log, exp, floor, fabs, pow

x_axis = np.asarray([pi * i / 6 for i in range(-6, 7)])  
y_axis = np.asarray([sin(i) for i in x_axis])

def f1(x, m, n):
    return m * x + n

coeff1, mat = curve_fit(f1, x_axis, y_axis)    
print(coeff1)

def f2(x, m, n):
    return m * sin(x) + n 

coeff2, mat = curve_fit(f2, x_axis, y_axis)  
print(coeff2)

完整的回溯是

Traceback (most recent call last):
  File "/Documents/Programming/Eclipse/PythonDevFiles/so_test.py", line 49, in <module>
    coeff2, mat = curve_fit(f2, x_axis, y_axis)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 742, in curve_fit
    res = leastsq(func, p0, Dfun=jac, full_output=1, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 377, in leastsq
    shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 26, in _check_func
    res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
  File "/usr/local/lib/python3.5/dist-packages/scipy/optimize/minpack.py", line 454, in func_wrapped
    return func(xdata, *params) - ydata
  File "/Documents/Programming/Eclipse/PythonDevFiles/so_test.py", line 47, in f2
    return m * sin(x) + n 
TypeError: only length-1 arrays can be converted to Python scalars

错误消息与列表一起出现,numpy数组作为输入类似。它影响所有math我测试过的函数(请参阅导入中的函数)并且必须与数学模块如何操作输入数据有关。这是最明显的pow()函数 - 如果我不从以下位置导入此函数math, curve_fit可以正常工作pow().

显而易见的问题 - 为什么会发生这种情况以及如何发生math函数可与curve_fit?

P.S.:请不要讨论,不应该用线性拟合来拟合样本数据。选择这个只是为了说明问题。


请小心使用 numpy 数组、数组操作和标量操作!

Scipy优化假设输入(初始点)是一个一维数组,并且在其他情况下经常会出错(例如列表变成数组,如果你假设在列表上工作,事情会变得严重;这些类型的问题是在 StackOverflow 上很常见,而且肉眼调试并不容易;代码交互有帮助!)。

import numpy as np
import math

x = np.ones(1)

np.sin(x)
> array([0.84147098])

math.sin(x)
> 0.8414709848078965                     # this only works as numpy has dedicated support
                                         # as indicated by the error-msg below!
x = np.ones(2)

np.sin(x)
> array([0.84147098, 0.84147098])

math.sin(x)
> TypeError: only size-1 arrays can be converted to Python scalars

老实说:这是对 numpy 非常基本的理解的一部分,在使用 scipy 的有些敏感函数时应该理解。

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

scipy curve_fit 不喜欢数学模块 的相关文章

  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 无效的选择器:使用 Selenium 时不允许出现复合类名错误

    我正在尝试通过 Web Whatsapp 打印聊天中的一条消息 我可以通过 控制台 选项卡中的 Javascript 来完成此操作 我就是这样做的 recived msg document getElementsByClassName XE
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • MySQL 触发插入/更新事件

    所以我有两张这样的桌子 ext words id word 1 this 2 that 3 this ext words count id word count 1 this 2 2 that 1 我正在尝试创建一个触发器 update e
  • 如何将 target="_blank" 添加到 JavaScript window.location?

    下面将目标设置为 blank if key smk window location http www smkproduction eu5 org target blank done 1 但这似乎不起作用 如何在新选项卡中启动链接 这是我的代
  • 在 NOT IN 子句中传递分隔字符串

    下面的 SQL 从概念上复制了我试图解决的问题 尽管传递了 NOT IN 子句 但仍返回所有三个记录 SELECT FROM SELECT JACK AS VALUE FROM DUAL UNION SELECT JOHN AS VALUE
  • 如何实现自定义命令行和执行

    我正在尝试为我的应用程序构建一个自定义命令行 我有几个基本命令 我只是使用一堆 if 语句来检查命令是什么 目前它看起来像这样 public void ExecuteCommand string input ReadLine gets la
  • 预加载图像然后更改背景javascript

    我使用脚本标记内的以下代码更改背景图像 当背景改变时 这会导致白闪 我所有的页面都是ajax 我不能只选择像背景一样的背景颜色 因为我也在个人资料页面上使用它 并且每个个人资料都有不同的背景 是否可以预加载图像然后更改背景以停止白闪 谢谢
  • 跨程序集边界返回/使用动态匿名类型

    下面的代码效果很好 如果Get and Use方法位于不同的程序集中 代码失败并出现 RuntimeBinderException 这是因为 Net运行时系统只保证匿名类型的通用性
  • 简单的正则表达式在 jQuery 中提取方括号之间的内容

    我有一堆名称类似于 comp 1 Field 或 comp 3 AnotherField 的元素 其中索引 1 或 3 发生变化 我正在尝试从名称中提取索引 现在我正在使用 var index input last attr name ma
  • SpreadsheetFormatRow 突然停止工作

    我见过this帖子 但看起来确实有解决方案 无论如何 我正在使用 ColdFusion 10 生成 Excel 电子表格 但是 当我使用 SpreadsheetFormatRow 并传入要格式化的行时 它只执行大约 3 个操作 然后突然停止
  • 通过 Jenkins CI 工具执行 AUTO IT EXE

    我正在使用 CI Jenkins 工具并尝试执行 AUTO IT Exe 文件 我尝试通过詹金斯 使用以下选项 但是什么都没有解决 执行命令行参数 批处理文件 ant file Windows 运行器插件 通过 Jenkins 在从属设备上
  • 如果其中一个是使用 Popen 启动的,为什么两个 Python 脚本之间的套接字连接会中断?

    所以我有两个非常简单的 python 脚本通过套接字进行通信 现在它们都在同一台 Windows PC 上运行 这是控制器 py import socket import time import sys from subprocess im
  • 无法使用 Python 将阿拉伯语解码的 Unicode 保存到 CSV 文件

    我正在使用 python 的 Twitter 流媒体包 我目前正在使用以 unicode 编写的关键字来搜索包含该单词的推文 然后 我使用 python 创建推文的数据库 csv 文件 但是 当我将推文保存到 csv 中时 我想将它们转换回
  • 了解用户是否启动了应用程序

    好吧 这个标题可能看起来很奇怪 但请耐心听我说 我有一个应用程序 用户可以根据其首选项进行设置 以便在登录时启动 这意味着我可以预期有时该应用程序将由用户启动 单击 Dock Finder 等 但有时该应用程序将在登录时由系统自动启动 我想
  • 如何从 UITableView 中删除选定的行? [复制]

    这个问题在这里已经有答案了 可能的重复 将表更改为编辑模式并删除普通 ViewController 中的行 我想从 tableView 中删除选定的行 我想向用户提供当用户在行上滑动或轻弹手指时删除该行的功能 我知道编辑风格提供了一个带有
  • 使用 std::chrono 在 C++ 中输出日期和时间

    我一直在升级一些旧代码 并尽可能更新到 c 11 以下代码是我在程序中显示时间和日期的方法 include
  • 如何使用 picasso 库实现我自己的磁盘缓存 - Android?

    我正在使用 picasso 库为我的应用程序加载图像 但我不知道如何使用 picasso 库实现我自己的磁盘 sdcard 缓存 Picasso 使用 HTTP 客户端进行磁盘缓存 如果已经配置 它将使用该客户端而不是安装自己的客户端 对于
  • 更改 UISegmentedControl 的高度

    我正在尝试改变高度UISegmentedControl使用此代码 CGRect frame mySegmentedControl frame mySegmentedControl setFrame CGRectMake frame orig
  • 我只需要重写 Toast 类的 show()

    我只需要覆盖show 方法为Toast班级 我创建了一个扩展的类Toast类 但随后我创建了一条 toast 消息 但出现异常setView View view 还没有被调用 但我不想创建自定义View方法 但使用默认方法 那么 如何才能覆
  • SecurityAttribute.Unrestricted 问题

    我对这个属性感到困惑 正如这里提到的 http msdn microsoft com en us library system security permissions securityattribute unrestricted aspx
  • 使用自定义 CSS 将 HTML 文件加载到 WebView

    我的 Android 应用程序上有一个 WebView 可以加载 WebView loadUrl 手机内部存储中的不同本地 HTML 文件 我想为它们添加一些自定义 css 样式 现在 我可以让我的应用程序编辑每个 HTML 文件并添加 C
  • scipy curve_fit 不喜欢数学模块

    在尝试创建一个示例时scipy optimize curve fit我发现scipy似乎与Python的不兼容math模块 而函数f1工作正常 f2抛出错误消息 from scipy optimize import curve fit fr