我正在使用np.vectorize
-ed 函数,并希望使用tqdm
. 但是,我一直无法弄清楚如何做到这一点。
我发现的所有建议都与将计算转换为 for 循环或 pd.DataFrame 相关。
据我所知,tqdm
不会结束numpy.vectorize
。
要显示 numpy 数组的进度条,numpy.ndenumerate
可以使用。
给定输入和函数:
import numpy as np
from tqdm import tqdm
a = np.array([1, 2, 3, 4])
b = 2
def myfunc(a, b):
"Return a-b if a>b, otherwise return a+b"
if a > b:
return a - b
else:
return a + b
Run Code Online (Sandbox Code Playgroud)
替换下面的矢量化部分
# using numpy.vectorize
vfunc = np.vectorize(myfunc)
vfunc(a, b)
Run Code Online (Sandbox Code Playgroud)
有了这个
# using numpy.ndenumerate instead
[myfunc(x,b) for index, x in tqdm(np.ndenumerate(a))]
Run Code Online (Sandbox Code Playgroud)
才能看到tqdm
进展。
归档时间: |
|
查看次数: |
1799 次 |
最近记录: |