gpt4 book ai didi

python - Numpy ndarray 在 bool 条件之后进行广播

转载 作者:行者123 更新时间:2023-11-30 21:58:41 43 4
gpt4 key购买 nike

我想知道是否有一种方法可以通过避免使用 for 循环来利用 python numpy 数组广播来减少计算时间。这是以下最小示例:

import numpy as np

# parameters
n_t = 256
G = 0.5
k_n = 10

# typical data
tau = np.linspace(0,2*np.pi,256)
x_t = np.sin(tau).reshape((n_t,1))

delta = np.maximum(0,(x_t-G))
f_dot = np.zeros((n_t,1))

for i in range(0,n_t,1):
# boolean condition
if delta[i,0] > 0:
f_dot[i,0] = k_n

如有任何建议,我们将不胜感激。谢谢。

最佳答案

您可以使用np.where为了根据条件的结果从 k_nf_dot 分配值:

f_dot = np.where(delta > 0, k_n, f_dot)

关于python - Numpy ndarray 在 bool 条件之后进行广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815897/

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