sympy.使用 numpy 数组分段

问题描述 投票:0回答:1

我想实施

sympy.Piecewise
在 numpy 数组上。

考虑:

x = np.array([0.1,1,2])
y = np.array([10,10,10])
Piecewise((x * y, x > 0.9),(0, True))

但是,我得到了这个:

TypeError: Argument must be a Basic object, not ndarray

有办法解决这个问题吗?

我尝试过列表理解。然而,当涉及的变量更多时,事情就会变得更加困难。

python sympy
1个回答
0
投票

simpy.Piecewise
numpy数组直接兼容。使用
np.where
可以实现类似的功能:

import numpy as np
x = np.array([0.1,1,2])
y = np.array([10,10,10])
result = np.where(x > 0.9, x * y, 0)
© www.soinside.com 2019 - 2024. All rights reserved.