- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 np.piecewise
定义一个多元分段函数,如下所示:
X = np.array([
[1, 2],
[3, 4],
[5, 6]
])
pw = np.piecewise(
X,
[
np.abs(X[:, 0] - X[:, 1]) < 1,
np.abs(X[:, 0] - X[:, 1]) >= 1
],
[
lambda X: 1 + 2 * X[:, 0] + 3 * X[:, 1],
lambda X: 1.5 + 2.5 * X[:, 0] + 3.5 * X[:, 1]
]
)
运行此代码片段会出现以下错误:
ValueError: shape mismatch: value array of shape (3,) could not be broadcast to indexing result of shape (3,2)
对于上下文,我尝试在本例中表示一个映射 f: R^2 -> R,同时在 X
的每一行上对其进行评估。
有什么想法吗?我是否需要以不同的方式定义最终参数以便正确广播索引?
最佳答案
IMO np.piecewise
如果您有来自 np.meshgrid
的两个数组,则更适合,以便 np.piecewise
可以匹配条件的维度与您的数组维度。
在您的情况下,表示分段映射 $f:R^2\to R$ ,输入形状为 (n,2)
并逐行评估(每列代表一个变量),生成矢量化代码的最简单方法就是使用 np.select
:
def pw(X):
return np.select([np.abs(X[:,0] - X[:,1]) < 1, np.abs(X[:,0] - X[:,1]) >= 1],
[1 + 2 * X[:, 0] + 3 * X[:, 1], 1.5 + 2.5 * X[:, 0] + 3.5 * X[:, 1]])
和pw(X)
产生您想要的答案。
关于python - 尝试使用 np.piecewise 进行多元函数时出现 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541724/
我有一系列由类型级整数索引的数据类型,我以“分段”方式将它们定义为某个类型类的实例,这在尝试派生另一个类的实例时会导致问题。为了说明,我将问题隔离如下。考虑这段代码: {-# LANGUAGE Sco
在 sympy 中,如何声明一个对子函数中的多个变量具有多个限制的 Piecewise 函数? 这是我的背景和尝试: from sympy import Piecewise, Symbol, exp
我试图找到的傅里叶级数 像 simpy 一样: p = Piecewise((sin(t), 0 0) | (t < pi)), (0, (pi < t) | (t < 2*pi))), (t, 0
我正在尝试使用两个 x0 和 y0 坐标数组中的数据来创建一个使用提供的 x0 和 的函数>y0 计算分段的一系列线段。 为此,我创建了一个函数 import numpy as np import m
我正在学习关于模糊系统的类(class),我学习了 my notes在我的电脑上。这意味着我不得不时不时地在电脑上画图。由于这些图表定义明确,我觉得用 numpy 绘制它们是个好主意(我用 LaTeX
我希望从一组数据点生成一个最适合这些点的三次样条函数。 也就是说,寻求获得最适合数据的单个三阶多项式函数 - 而不是分段多项式。(最终目标是找到该函数二阶导数的最大值) 我已经尝试过scipy.int
我定义了一个分段复杂函数 import numpy as np def foo(x): return np.piecewise(x, [x>0], [np.exp(1j*x)]) 当我尝试评估
我想绘制以下累积分布函数 为此我想我可以使用 np.piecewise 如下 x = np.linspace(3, 9, 100) np.piecewise(x, [x 9], [0, float(
我的代码 我在一个较大的程序中有效地减少了以下代码片段: import sympy as sp print('sympy version:', sp.__version__) n = sp.symbo
我正在编写一个程序来进行三次样条插值。基本上,该程序将在某些间隔内拼凑三次多项式。如果可能的话,我想用piecewise[] 或其他类似的函数来绘制这个结果。 在我的代码中,我的方程在一个数组中,输出
我正在尝试使用 np.piecewise 定义一个多元分段函数,如下所示: X = np.array([ [1, 2], [3, 4], [5, 6] ]) pw = np.p
我正在尝试在 Mathematica 中绘制缓和函数的导数。它区分函数 OK,并且可以使用 % 绘制函数,但我希望能够通过将导数指定为函数 f[t_] 来绘制,然后 绘制[ f[t] , {t,-1,
我一直在尝试让 numpy.piecewise 将系数列表 {a_ij} 转换为分段三次多项式。每当我运行以下代码时, import math import numpy as np x = np.li
我想创建一个巨大的打包数据阵列,并将其保存在磁盘上。我正在使用 writePackedMessageToFd()。但是,由于输入数据非常大 (50GB),我需要将消息片段写入磁盘以释放内存。 Cap'
我正在尝试为一些数字信号处理构造一个分段函数,但我无法获得 numpy.piecewise 以允许我指定一个范围。 这里是我要输入的内容: t = np.arange(-10,10,1) x = la
我对为什么以下代码的答案是 10 而不是 1 感到困惑。有人可以帮助我了解 lambdify 发生了什么或者是什么导致了错误答案吗? import sympy from sympy.utilities
我想绘制一个分段函数,例如: import sympy as sym x = sym.symbols("x") f = sym.Piecewise((-1, x = 1)) sym.plotting.
我是一名优秀的程序员,十分优秀!