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 不喜欢数学模块 的相关文章

  • Python 按文件夹模块导入

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

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • 如何更改条形图上的 y 轴限制?

    我有一个df 我从中索引了europe n我绘制了一个条形图 europe n r 5 c 45 looks like this df Country string df Population numeric 变量 plt bar df C
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • Weasyprint 在调用 write_pdf 时获得未定义的属性:“AttributeError:‘PosixPath’对象没有属性‘read_text’”

    我正在 ubuntu 18 04 上运行 weasyprint 项目 并尝试创建一个 pdf 当我尝试设置页脚图像时 问题就开始了 我正在 python 3 6 7 上运行 这是我调用 weasyprint 的代码 import sys i
  • numpy 数组最快的保存和加载选项

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

    我目前正在尝试为学校编写一个程序 以便加密和解密输入的消息 我需要加密或解密的消息仅在字母表中 没有其他符号或密钥 例如 使用消息车加密输入的偏移量为 5 我希望它输出 afs 有人可以帮忙吗 这是我目前的代码 def find offse
  • PyPI 项目页面中的“Py 版本”是什么意思?这有关系吗?

    我注意到 大多数在 PyPI 上发布的项目在其项目页面中都包含 Py 版本 元数据 但它们的值各不相同 如果包不是通用包或不是纯 python 包 那么它们的值是不同的 这是可以理解的 以便表示它们的目标平台 例如鼻页 https pypi
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • Cython:为什么 size_t 比 int 快?

    更改某些 Cython 变量的类型int输入size t可以显着减少某些功能的时间 30 但我不明白为什么 例如 cimport numpy as cnp import numpy as np def sum int cnp int64 t
  • 为图例中的点设置固定大小

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

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 如何将时间间隔划分为不同长度的部分?

    我有一个从 0 到t 我想把这个区间分成一个以2 25 2 25 1 5为周期的累积序列 方法如下 input start 0 stop 19 output sequence 0 2 25 4 5 6 8 25 10 5 12 14 25
  • 监控单个文件

    我需要监控 使用watchdog http pythonhosted org watchdog index html 单个文件 而不是整个目录 避免监视整个目录的最佳方法是什么 我想this http pythonhosted org wa
  • Python unittest - 与assertRaises相反?

    我想编写一个测试来确定在给定情况下不会引发异常 测试是否有异常很简单is上调 sInvalidPath AlwaysSuppliesAnInvalidPath self assertRaises PathIsNotAValidOne MyO
  • 避免在列表理解中计算相同的表达式两次[重复]

    这个问题在这里已经有答案了 我在列表理解中使用一个函数和一个 if 函数 new list f x for x in old list if f x 0 令我恼火的是这个表达f x 在每个循环中计算两次 有没有办法以更清洁的方式做到这一点
  • Beautiful Soup 获取动态表数据

    我有以下代码 url https www basketball reference com leagues NBA 2017 standings html all expanded standings html urlopen url so
  • 从 sublime_plugin.WindowCommand 获取当前文件名

    我开发插件sublime text 3 并想要获取当前打开的文件路径 absolute1 self window view file name 在哪里self is sublime plugin WindowCommand 但失败了 Att
  • Python列表问题

    我在使用 python 列表时遇到问题 简化版本是 mylist1 some items in a list mylist2 mylist1 mylist1 pop i mylist insert i item print mylist1
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla

随机推荐

  • 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