gpt4 book ai didi

python - 带有 numpy 数组的条件循环

转载 作者:行者123 更新时间:2023-12-04 00:15:44 25 4
gpt4 key购买 nike

我正在尝试使用 numpy 数组实现以下简单条件,但输出错误。

dt = 1.0
t = np.arange(0.0, 5.0, dt)
x = np.empty_like(t)
if np.where((t >=0) & (t < 3)):
x = 2*t
else:
x=4*t

我得到下面的输出

array([0., 2., 4., 6., 8.])

但我期待

array([0., 2., 4., 12., 16.])

感谢您的帮助!

最佳答案

docs 中查找对于 np.where:

Note: When only condition is provided, this function is a shorthand fornp.asarray(condition).nonzero(). Using nonzero directly should bepreferred, as it behaves correctly for subclasses. The rest of thisdocumentation covers only the case where all three arguments areprovided.

由于您没有提供 xy 参数,因此 where 的行为类似于 nonzerononzero 返回 np.arraystuple,转换为 bool 时为真。所以你的代码最终评估为:

if True:
x = 2*t

相反,您想使用:

x = np.where((t >= 0) & (t < 3), 2*t, 4*t)

关于python - 带有 numpy 数组的条件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63996066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com