当前位置: 首页 > 面试题库 >

等价于Python中2D多项式的`polyfit`

孟树
2023-03-14
问题内容

我想为的a系数找到最小二乘解

z = (a0 + a1*x + a2*y + a3*x**2 + a4*x**2*y + a5*x**2*y**2 + a6*y**2 +
     a7*x*y**2 + a8*x*y)

给定数组xyz,长度为20。基本上,我在寻找与相等的numpy.polyfit2D多项式。


问题答案:

这是显示如何可以numpy.linalg.lstsq用于此任务的示例:

import numpy as np

x = np.linspace(0, 1, 20)
y = np.linspace(0, 1, 20)
X, Y = np.meshgrid(x, y, copy=False)
Z = X**2 + Y**2 + np.random.rand(*X.shape)*0.01

X = X.flatten()
Y = Y.flatten()

A = np.array([X*0+1, X, Y, X**2, X**2*Y, X**2*Y**2, Y**2, X*Y**2, X*Y]).T
B = Z.flatten()

coeff, r, rank, s = np.linalg.lstsq(A, B)

调整系数coeff为:

array([ 0.00423365,  0.00224748,  0.00193344,  0.9982576 , -0.00594063,
        0.00834339,  0.99803901, -0.00536561,  0.00286598])

请注意,coeff[3]coeff[6]分别对应于X**2Y**2,并且它们接近,1.因为示例数据是使用创建的Z = X**2 + Y**2 + small_random_component



 类似资料:
  • 问题内容: 在Python中,您可以执行以下操作: 或这个: 在Go中,最简单的选项是: 这不允许您交换格式字符串中参数的顺序,而这需要对I18N进行。Go 确实 具有该软件包,这将需要以下内容: 这似乎是一条很长的路要走的错误消息。有没有更合理的选择,可以让我给出与顺序无关的字符串参数? 问题答案: 用 使用,实现您所需的格式化程序非常容易且紧凑。 输出(在Go Playground上尝试):

  • 问题内容: Click中的可选参数是否具有等效于的功能? 我正在编写命令行脚本,并且其中一个选项需要能够接受无限数量的参数,例如: 所以会和会。 在中,我可以指定多个可选参数来通过设置来收集所有跟随它们的参数。 我知道Click允许您通过设置来指定接受无限输入的参数,但是当我尝试将可选参数设置为-1时,我得到: TypeError:选项的nargs不能小于0 有没有一种方法可以使Click接受选项

  • 问题内容: 在Python 2.x中,当您要将一个方法标记为抽象时,可以这样定义它: 然后,如果您忘记覆盖它,则会收到一个很好的提醒异常。是否存在将字段标记为抽象的等效方法?还是在您可以做的所有工作中在类文档字符串中说明? 起初我以为可以将字段设置为NotImplemented,但是当我查看它的实际用途(进行大量比较)时,它似乎很脏。 问题答案: 是的你可以。使用装饰器。例如,如果您有一个名为“e

  • 问题内容: 我需要从一些文本文件中选择一些数字。我可以使用grep选择所需的行,但是不知道如何从行中提取数字。一位同事向我展示了如何使用Perl从bash中做到这一点: 但是,我通常使用Python而不是Perl进行编码。所以我的问题是,我可以用相同的方式使用Python吗?即,我可以将一些东西从bash传递到Python,然后直接将结果传递到stdout吗?…如果有道理。还是在这种情况下Perl

  • 问题内容: 这个问题可能背叛了一个误解,但是我很好奇Python世界的“ Tomcat”是什么。 我所有的Web编程经验都是Java(或Groovy),因此我认为是Java。当我想到制作一个基本的Web应用程序时,我想到了编写一些servlet,构建WAR文件并将其部署在Tomcat或另一个servlet容器中。 在Python中,假设我编写了一些能够响应HTTP请求的代码,我该怎么办?我将如何部

  • 问题内容: Golang 中python的chr()和ord()函数的等效项是什么? 问题答案: 支持它们作为简单转换: 输出(在Go Playground上尝试): 注意:您还可以将整数转换为基本上将整数解释为UTF-8编码值的: 将有符号或无符号整数值转换为字符串类型会产生一个包含该整数的UTF-8表示形式的字符串。有效Unicode代码点范围之外的值将转换为。