天道酬勤,学无止境

scipy

'Float' 对象没有属性 'sin'('Float' object has no attribute 'sin')

问题 当我去打印我的矩阵时,它会打印一个错误,说“Float”对象没有属性“sin”。 在 Python 中编码时,我试图使用 sym.matrix 以符号形式打印矩阵,但我正在以数字方式定义我的矩阵。 当我去打印我的矩阵时,它会打印一个错误,说“Float”对象没有属性“sin”。 似乎由于某种原因,我的 sin 函数没有被正确读取或输出。 import numpy as np from scipy.integrate import quad from numpy import sin, cos, pi N = 5 L = 1 r_e = 1.4 mu = 916 def Phi_V(x,n,r): return (2/L)**(1/2) * sin(n*np.pi*x/L +n*np.pi/2) * 4.7 * (1-np.exp(-x))**2 * (2/L)**(1/2) * sin(r*np.pi*x/L +r*np.pi/2) def V_Func(n,r,j): return quad(Phi_V, -L/2, L/2, args = (n,r))[0] + (j*j+1)/(2*mu*r_e**2) V = sym.Matrix(N,N, lambda n,r: V_Func(n + 1 ,r + 1,10)) V 我收到此错误消息: ---------------

2021-12-05 07:22:02    分类:技术分享    python   numpy   scipy   sympy

AttributeError: 模块 'scipy.misc' 没有属性 'toimage'(AttributeError: module 'scipy.misc' has no attribute 'toimage')

问题 在执行以下代码时: scipy.misc.toimage(output * 255, high=255, low=0, cmin=0, cmax=255).save( params.result_dir + 'final/%5d_00_%d_out.png' % (test_id, ratio)) 我收到以下错误: AttributeError: 模块 'scipy.misc' 没有属性 'toimage' 我尝试按照此处所述安装 Pillow:scipy.misc module has no attribute imread? 但同样的错误仍然存​​在。 请帮忙。 谢谢。 回答1 scipy.misc.toimage()函数在 Scipy 1.0.0 中被弃用,并在 1.3.0 版本中被完全删除。 从 1.3.0 发行说明: 来自scipy.interpolate ( spleval 、 spline 、 splmake和spltopp )和来自scipy.misc函数( bytescale 、 fromimage 、 imfilter 、 imread 、 imresize 、 imrotate 、 imsave 、 imshow 、 toimage )已被删除。 前一组自 v0.19.0 起已弃用,而后者已自 v1.0.0 起弃用。 注释链接到 v1.1.0 文档

2021-12-05 05:33:18    分类:技术分享    python   scipy   python-imaging-library   rawimage

使用带有 iε 技巧的 scipy.quad:糟糕的结果(Using scipy.quad with iε trick: Bad results)

问题 为了规避柯西原理值,我尝试使用小位移 iε 将积分积分到复平面中以逃避极点。 但是,从下图可以看出,结果非常糟糕。 此结果的代码如下所示。 你有什么想法如何改进这种方法吗? 为什么它不起作用? 我已经尝试改变 ε 或积分中的极限。 编辑:我在原则值中包含了“cauchy”方法,这似乎根本不起作用。 import matplotlib.pyplot as plt from scipy.integrate import quad import numpy as np def cquad(func, a, b, **kwargs): real_integral = quad(lambda x: np.real(func(x)), a, b, limit = 200,**kwargs) imag_integral = quad(lambda x: np.imag(func(x)), a, b, limit = 200,**kwargs) return (real_integral[0] + 1j*imag_integral[0], real_integral[1:], imag_integral[1:]) def k_(a): ϵ = 1e-32 return (cquad(lambda x: np.exp(-1j*x)/(x**2 - a**2 - 1j*ϵ),-np.inf,np

2021-12-05 05:13:13    分类:技术分享    python   scipy   numerical-methods   integral   quad

Python:时间序列数据的三次样条回归(Python: Cubic Spline Regression for a time series data)

问题 我有如下所示的数据。 我想找到适合整个数据集的 CUBIC SPLINE 曲线(链接到示例数据)。 到目前为止我尝试过的事情: 我已经完成了 scipy 的三次样条函数,但它们都只能在一次给出结果,而我想要整个时间范围内的一条曲线。 我通过取 scipy.interpolate.splrep 生成的样条系数的平均值绘制了一个图形,得到了 4 个结,但结果并不好,也没有解决我的目的。 可以帮助我的事情: 关于如何优化结的数量和位置以获得更好的拟合的想法如果不是这样,那么如果有人可以帮助我找到给定节点数的三次样条的确切多项式系数。 如果有人可以提出解决此问题的完整方法。 回答1 我制作了数据的 3D 散点图,将时间戳从第一个时间戳转换为“以秒为单位的经过时间”,图像如下。 在我看来,数据有一种 3D 等价的异常值,这里显示为一整行数据,远低于大多数其他数据。 这将使创建任何类型的 3D 曲面拟合变得困难。

2021-12-05 03:40:34    分类:技术分享    python   scipy   regression   curve-fitting   cubic-spline

使用 Python 将 sigmoid 函数(“S”形曲线)拟合到数据(Fit sigmoid function ("S" shape curve) to data using Python)

问题 我正在尝试将 sigmoid 函数拟合到我拥有的一些数据,但我不断收到: ValueError: Unable to determine number of fit parameters. 我的数据如下所示: 我的代码是: from scipy.optimize import curve_fit def sigmoid(x): return (1/(1+np.exp(-x))) popt, pcov = curve_fit(sigmoid, xdata, ydata, method='dogbox') 然后我得到: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-5-78540a3a23df> in <module> 2 return (1/(1+np.exp(-x))) 3 ----> 4 popt, pcov = curve_fit(sigmoid, xdata, ydata, method='dogbox') ~\Anaconda3\lib\site-packages\scipy\optimize\minpack.py in curve_fit(f

2021-12-05 02:24:06    分类:技术分享    python-3.x   scipy   curve-fitting   sigmoid

如何使用 scipy.integrate 设置固定步长?(How to set fixed step size with scipy.integrate?)

问题 我正在寻找一种方法来设置固定步长,以通过 Python 中的 Runge-Kutta 方法解决我的初始值问题。 因此,我如何告诉scipy.integrate.RK45为其积分过程保持不断更新(步长)? 非常感谢。 回答1 为 Dormand-Prince RK45 方法编写 Butcher 表非常容易。 0 1/5 | 1/5 3/10 | 3/40 9/40 4/5 | 44/45 −56/15 32/9 8/9 | 19372/6561 −25360/2187 64448/6561 −212/729 1 | 9017/3168 −355/33 46732/5247 49/176 −5103/18656 1 | 35/384 0 500/1113 125/192 −2187/6784 11/84 ----------------------------------------------------------------------------------------- | 35/384 0 500/1113 125/192 −2187/6784 11/84 0 | 5179/57600 0 7571/16695 393/640 −92097/339200 187/2100 1/40 首先在单步导入 numpy 作为 np 的函数中 def DoPri45Step(f

2021-12-03 20:00:14    分类:技术分享    python   scipy   integrate   runge-kutta

我如何修复/调试 scikit 中抛出的这个多进程终止的工作错误学习(How do I fix/debug this Multi-Process terminated worker error thrown in scikit learn)

问题 我最近设置了一台新机器,以帮助减少拟合模型和数据整理的运行时间。 我做了一些初步的基准测试,一切都很顺利,但是当我尝试在 scikit learn 中启用多进程工作人员时遇到了障碍。 我已将错误简化为与我的原始代码无关,因为我在另一台机器和 VM 上启用了此功能而没有问题。 我还进行了内存分配检查,以确保我的机器没有用完可用 RAM。 我有 16gb 的 RAM,所以应该没有问题,但我已经离开了测试的输出,以防我错过了一些东西。 鉴于附近的回溯错误,我可以告诉我的操作系统正在杀死它,但对于我的生活,我无法弄清楚原因。 据我所知,我的代码仅在仅使用单个 CPU 内核时才会运行。 我运行的是 Windows 10、AMD ryzen 7 2700x、16GB RAM 代码 import sklearn import numpy as np import tracemalloc import time from sklearn.model_selection import cross_val_score from numpy.random import randn from sklearn.linear_model import Ridge ##################### memory allocation snapshot tracemalloc.start()

2021-12-03 19:25:33    分类:技术分享    python   scikit-learn   scipy   multiprocessing

如何在 Python 中插入 2D 曲线(How to interpolate a 2D curve in Python)

问题 我有一组 x & y 坐标,它是一条曲线/形状,我想要平滑曲线/锐利并绘制图形。 我尝试了不同的插值来平滑曲线/形状,但它仍然不符合我的期望。 使用点绘制平滑的曲线/形状。 如下图,使用x,y点得到平滑的圆/曲线 但是,我得到了类似的东西 圆.jpg 曲线.jpg 正方形.jpg 我在样条插值和 rbf 插值方面也遇到了麻烦。 对于cubic_spline_interpolation,我得到 ValueError:输入数据错误 对于 univariate_spline_interpolated,我得到了 ValueError: x 必须严格增加 对于 rbf,我得到了 numpy.linalg.linalg.LinAlgError:矩阵是奇异的。 我有想法修复它们并获得正确的锐度和曲线。 非常感谢您的帮助。 编辑对于那些无法下载源代码和x,y坐标文件的人,我发布了有问题的代码和x,y坐标。 以下是我的代码: #!/usr/bin/env python3 from std_lib import * import os import numpy as np import cv2 from scipy import interpolate import matplotlib.pyplot as plt CUR_DIR = os.getcwd() CIRCLE_FILE =

2021-12-03 11:53:18    分类:技术分享    python   scipy   interpolation

scipy.stats 是否对 iqr 进行了错误的计算?(Is scipy.stats doing wrong calculation for iqr?)

问题 我正在对数据集进行编码 [23,25,28,28,32,33,35] 根据 wiki 和 scipy doc IQR = Q3 − Q1 = 33 - 25 = 8 当我在数据集上运行 IQR 时,结果 (6) 与预期 (8) 不同。 我在https://stackoverflow.com/a/23229224中尝试了另一种方法,结果是6。 这是我的代码 import numpy as np from scipy.stats import iqr x = np.array([23,25,28,28,32,33,35]) print(iqr(x, axis=0)) 是什么导致了这个问题? 回答1 scipy.stats.iqr似乎没有遵循维基百科中记录的递归算法。 相反,它只是执行np.percentile(x, 75) - np.percentile(x, 25)这不排除中位数,它是包含在内的,所以你得到(32 + 33)/2 - (25 + 28)/2 = 6 如果您想在维基百科中使用该算法,则需要执行以下操作: def iqr_(m): m = np.array(m) n = m.size//2 m_ = np.partition(m.ravel(), n + 1) return np.median(m_[n + m.size%2:]) - np.median(m_[:n

2021-12-03 11:50:08    分类:技术分享    python   numpy   scipy

我应该切换到 Python 吗? [关闭](Should i switch to Python? [closed])

问题 很难说出这里问的是什么。 这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。 如需帮助澄清此问题以便重新打开它,请访问帮助中心。 10 年前关闭。 我最近一直在考虑改用 Python 编程语言。 目前,Matlab 是我所在部门用于快速开发和代码原型设计的首选语言。 它在这方面非常擅长,但 Mathworks(生产 Matlab 的公司)一直在修改许可条款,导致不应该存在的麻烦。 回答1 我发现 python+numpy+scipy+matplotlib+IPython+[random sci/numeric packages] 几乎可以完全替代 matlab。 肯定有一些包丢失了,所以如果有一组专门的工具在 matlab 中可用但在 python 中没有,这可能是一个问题,但否则,我没有回头。 我将提到 python 相对于 matlab 的几个明显优势 真正的编程语言,而不是对数字包的语言的黑客攻击(numpy 来到 python 而不是相反)。 与 matlab 相比,管理大型 python 项目是一种完全的乐趣。 有多少不同的 oop 系统被整合到 matlab 中? 完全免费和便携。 我可以在几乎没有许可问题的任何机器上使用 python。 从我的角度来看,这是最大的优势。 使用 SWIG、Cython、f2py

2021-12-03 10:22:45    分类:技术分享    python   matlab   numpy   scipy