具有形状 (n,) 的 Sympylambdaify 数组

2024-01-05

我目前与 sympy 存在以下“问题”:

我有一个象征性的表达,比如M = matrix([pi*a, sin(1)*b])我想要lambdify并传递给数值优化器。问题是优化器需要函数来输入/输出形状的 numpy 数组(n,)特别是不(n,1).

现在我已经能够通过以下代码(MWE)实现这一目标:

import numpy as np
import sympy as sp
a, b = sp.symbols('a, b')
M = sp.Matrix([2*a, b])
f_tmp = sp.lambdify([[a,b]], M, 'numpy')
fun   = lambda x: np.reshape( f_tmp(x), (2,))

现在,这当然非常难看,因为每次都需要应用重塑fun被评估(可能会很多次)。有办法避免这个问题吗?这Matrix根据定义,类始终是二维的。我尝试使用sympy's MutableDenseNDimArray-class,但它们不能与lambdaify一起使用。 (符号变量无法被识别)


一种方法是将矩阵转换为嵌套列表并获取第一行:

fun = sp.lambdify([[a, b]], M.T.tolist()[0], 'numpy')

Now fun([2, 3]) is [4, 3]。这是一个 Python 列表,而不是 NumPy 数组,但优化器(至少是 SciPy 中的优化器)应该可以接受。

一个也可以做

fun = sp.lambdify([[a, b]], np.squeeze(M), 'numpy')

它还返回一个列表。

在我的测试中,上述速度同样快,并且比具有包装功能的版本更快(无论是np.squeeze or np.reshape):大约 6 µs 与 9 µs。看来好处在于消除了一个函数调用。

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

具有形状 (n,) 的 Sympylambdaify 数组 的相关文章

  • Sympy - 改变绘图的 y 轴范围

    使用 Sympy 如何设置 y 轴的范围 plot x 2 2 我想让 y 轴从 0 到 7 当你绘图时 你可以使用 kwargsxlim and ylim设置轴限制 例如 gt gt gt plot x 2 2 xlim 3 3 ylim
  • IPython Notebook Sympy 数学渲染

    我刚刚开始使用 IPython Notebook 并对其功能着迷 我一直在使用网上提供的一些示例来开始使用 我正在关注这个教程 http nbviewer ipython org url finiterank com cuadernos s
  • 使用 sympy 计算多元函数的泰勒级数

    我正在尝试使用 SymPy 计算依赖于三角函数的函数的泰勒级数sinc here http docs sympy org dev modules mpmath functions trigonometric html sinc functi
  • Python 求解一个变量的方程

    我正在尝试使用 SymPy 求解 python 中的方程 我有一个生成的方程 类似于function y 8 0 y 3 0 我将其与 SymPy 一起使用来创建一个如下所示的新方程 eq sympy Eq function 2 哪个输出y
  • 有什么方法可以在 sympy 中进行整数除法吗?

    我有一个很长的表达式 我认为可以简化 我想sympy将是最好的方法 不幸的是 这个公式依赖于几个整数除法 我找不到任何方法来表示这些sympy gt gt gt x Symbol x gt gt gt x 1 2 x 2 1 2 显然不是我
  • 计算机代数软件,用于最小化一组多项式中的运算次数

    我有多项式系统 相当简单的多项式表达式 但相当长 优化我的手牌 表达式按集合分组 在给定的集合中 多个变量中有共同的术语 我想知道是否有一个计算机代数系统 例如 Mathematica Matlab 或 sympy 可以优化多个具有常用项的
  • SymPy 中眼睛和身份的区别

    在 SymPy 中 有什么区别eye 5 and Identity 5 如果我有一个矩阵X 我看到X eye 5 and X Identity 5 给出不同的结果 后者不是矩阵 SymPy 区分 显式矩阵 具有一定的大小 例如 3 x 3
  • 有没有办法在 SymPy 中处理常量函数参数?

    我正在生成符号函数并使用 SymPy 来简化它们 现在我想要一种方法来 简化 表示尚未拟合的函数中的常量参数的符号 例如 如果我生成一个多项式 我可能会生成一个像这样的字符串 C x x C x C x C SymPy 会变成 C x 2
  • 如何使符号计算中的所有低值都变为零?

    如何将 SymPy 表达式中的所有低值设为零 例如我的结果是 1 0 a1 cos q1 6 12e 17 a2 sin q2 a3 sin q2 q3 a4 sin q2 q3 q4 sin q1 1 0 a2 cos q2 a3 cos
  • Python Sympy 求解返回列表与字典

    我正在使用 sympy 及其求解函数 但我注意到它有时返回列表中的字典 但在其他情况下仅返回字典 没有列表 from sympy import x y symbols x y q 16 x 0 5 y 0 5 solve diff q x
  • 在 SymPy 中,为什么我的解决方案(nonlinsolve)返回错误的答案?

    我有一个由 3 个方程组成的系统 我想找到以下交线或零斜线的解dx dy from sympy import x y z symbols x y z dx x x 3 3 z y dy y 2 0 1 z dz 0 xy nullcline
  • 使用 numpy/sympy 查找线性系统的最小二乘整数解

    我需要用 numpy 或 sympy 求解线性丢番图方程组 有没有办法限制 numpy 的 linalg solve linalg lstsq 方法仅返回整数解 可能不是 但我想我应该问 我研究了 Sympy 的丢番图求解器 它似乎不适用于
  • 使用 Python 函数并生成所有导数

    我有一个参数数量可变的 python 函数 F x1 x2 xN 我想自动生成 N 个函数 表示 F 对每个参数的导数 F 1 dF dx1 F 2 dF dx2 F N dF dxN 例如 我可以同时提供 F x1 sin x1 和 F
  • python:更改符号变量并分配数值

    为了计算导数和其他表达式 我使用了 sympy 包并表示T sy Symbol T 现在我已经计算出正确的表达式 E T 2 F deriv T T rho where def F deriv rho T rho ret 0 for n i
  • 使用lambdaify将硬积分转换为lambda函数

    我想对函数进行羔羊化Integral t t t 0 x 它有效 但是我的新函数由lambdify 不返回数字 而仅返回sympy integrals integrals Integral班级 但我不希望这样 我希望它返回一个浮点数 这是我
  • 运行 sympy 中表达式的 AST

    我正在使用 sympy 来计算复杂函数表达式的一些高阶导数 我想遍历表达式的 AST 例如首先深度遍历节点 我怎么做 一个简单的深度优先旅行将是这样的 from sympy import pi sin from sympy abc impo
  • 用Python绘制不等式图

    我正在创建一个程序 它将随机生成线 即不等式 并显示满足约束的区域 我不介意使用哪些库 所以可以随意使用 sympy numpy 等 我将显示我当前的代码 但这只是填充了两行之间的区域 并且根本不使用不等式 如果可能的话 有一个图例就好了
  • 如何使用 sympy.lambdify 和 Max 函数来替换 numpy.maximum 而不是 numpy.amax?

    我正在尝试使用 sp Max x 0 来对大分析表达式进行羔羊化 我想使用 numpy 来向量化我的计算 因此 x 将是一个数组 我需要 x 和 0 的元素最大值 不过 sympy 默认情况下会将 sp Max 更改为 np amax 它沿
  • 使用 sympy 在特定点评估雅可比行列式

    我试图在 x y 0 0 处评估雅可比行列式 但无法这样做 import sympy as sp from sympy import import numpy as np x y sp symbols x y real True J Fun
  • 如何让 SymPy 收集偏导数?

    我一直在使用 SymPy 来扩展复杂偏微分方程的项 并希望使用 Collect 函数来收集项 然而 在处理微分变量不同的二阶 或高阶 导数时似乎存在问题 在下面的代码示例中collect expr6 有效 但是collect expr7 没

随机推荐

  • 类似于 .NET 中的可等待计时器

    在非托管 Win32 世界中 我习惯于用创建等待定时器 http msdn microsoft com en us library windows desktop ms682492 28v vs 85 29 aspx可用于同步调用的 API
  • 为什么带有毫秒参数的clearTimeout不起作用?

    我正在构建一个简单的横幅旋转器 事实是 当它在没有按下任何按钮的情况下旋转时 工作正常 但是当我按下某个按钮来更改横幅并清除时间时 它不起作用 看来时间不太清楚 var tempo 5000 var elemento var quantos
  • 使用 LINQ to SQL 时这是一个虚假警告吗?

    根据我见过的许多 LINQ 示例 我正在使用类似于以下代码的代码创建自己的数据上下文和表 class MyDatabase DataContext public Table
  • 将 IIS 应用程序池回收事件记录在 Windows 事件日志中

    我想得到IIS 7应用程序池回收 启动 停止等事件要记录到Windows事件日志 我按照中概述的步骤操作本文 http www iisadmin co uk p 17但没有取得任何成功 我重新启动了应用程序池 事件日志中没有记录任何内容 我
  • CloudWatch 自定义指标未按预期工作

    我已经根据发送到 CloudWatch 的一些日志文件创建了 7 个其他指标 没有出现任何问题 前段时间我们遇到了 MongoDB 连接问题 我通过日志发现了这个问题 所以我想创建一个 Metric 以便我可以基于它创建一个 Alarm 我
  • 带有 Plastic SCM 的超大型存储库

    我们正在研究 Plastic SCM 作为 Subversion 的可能替代方案 用于我们产品的版本控制 除了非常庞大的源代码库之外 我们还拥有大量的二进制资产 主要是艺术资产 还包括一些文档 AVI 等 简单说一下 svn 检查我们的 t
  • 变长系列

    我试图确定是否可以在 Excel 中编写以下计算 其中 n 是变量并且来自用户输入 n的值是正数并且等于或大于1 是否可以写一个公式而不是使用vba 2 1 2 2 2 3 2 n If n 1 then the calculation w
  • JavaFX:对单击、双击和三次单击的反应

    我正在尝试配置某些操作来响应鼠标单击次数 在我看来 单击和三次单击被检测到并应用 但双击实际上不起作用 我尝试做类似的事情 if doubleClick else if tripleClick else if singleClick 检查顺
  • 使用 CGAffineTransform 倾斜 UIImageView

    我试图倾斜一个矩形 使两个垂直边倾斜但平行 顶部和底部是水平的 我正在尝试使用 CGAffineTransform 并找到了这段代码 但我不知道要在各个部分中放入什么 imageView layer somethingMagic image
  • 如何取消自定义等待

    我读了斯蒂芬 图布的博客 https devblogs microsoft com pfxteam awaiting socket operations 关于为 SocketAsyncEventArgs 制作自定义等待 这一切都很好 但我需
  • Keyvault 身份验证(REST API)

    我对微软分散的文档有点困惑 我创建了一个应用程序 https learn microsoft com en us azure azure resource manager resource group create service prin
  • 在SOLID中,SRP和ISP有什么区别? (单一职责原则和接口隔离原则)

    如何SOLID http en wikipedia org wiki Solid object oriented design 接口隔离原则 与 单一职责原则 有何不同 维基百科SOLID 条目说 http en wikipedia org
  • UIStackView 中的多行标签

    将多行标签 换行符设置为自动换行 放入堆栈视图时 标签会立即丢失换行符并在一行中显示标签文本 为什么会发生这种情况以及如何在堆栈视图中保留多行标签 正确答案在这里 https stackoverflow com a 43110590 566
  • cocoa 再次错误 134100 - (用于打开的模型与用于创建的模型不兼容...)

    我在这里看到了这个问题 但总是 答案是模型已更改 重置模拟器 删除商店 我也收到此错误 但是 这是一个新应用程序 我没有添加 更改实体或属性 我删除了商店 重置了模拟器 但得到了相同的结果 这是商店代码 这个问题还有其他原因吗 NSMana
  • jQuery:分离并重新附加元素而不重新加载内容

    我想知道是否可以使用 jQuery 分离然后将元素 例如 div 重新附加到 DOM 而无需重新加载元素内的内容 考虑这个示例布局 div class row div class col lg 6 div class card img sr
  • 如何在执行剧本时在命令行中添加多个清单文件

    我有一本包含两种不同玩法的剧本 Sample yml name Play1 hosts Host1 tasks name Play2 hosts Host2 tasks 我需要用两个不同的主机运行这个剧本 主机1和主机2 并且这两个不同的主
  • PDO lastInsertId 不适用于事务?

    我是第一次在 MySQL 中使用 PDO 目前只是在玩它 到目前为止 当我尝试在事务中进行插入时 this gt dbh gt beginTransaction sql query ran this gt dbh gt commit ech
  • jquery滑块背景颜色

    我是网络编程新手 我正在尝试创建包含滑块的网站 我目前正在使用 jquery 来创建滑块 我试图在滑块值小于 5 时将滑块的背景颜色更改为红色 在滑块值大于 5 时将其背景颜色更改为绿色 如何实现此目的 我必须使用 CSS 来完成这个任务吗
  • 将 lib 添加到 Rails 3 中的“config.autoload_paths”不会自动加载我的模块

    我在旁边放置了一个文件名 g rbRails root lib文件夹 文件内容是这样的 module Google end 然后我添加 config autoload paths W config root lib Rails root a
  • 具有形状 (n,) 的 Sympylambdaify 数组

    我目前与 sympy 存在以下 问题 我有一个象征性的表达 比如M matrix pi a sin 1 b 我想要lambdify并传递给数值优化器 问题是优化器需要函数来输入 输出形状的 numpy 数组 n 特别是不 n 1 现在我已经