通过女服务员提供烧瓶应用程序时使用 np.cov 出现分段错误
Segmentation fault using np.cov while serving a flask app via waitress
我想在更复杂的 Flask 应用程序中执行简单的协方差计算。下面我创建了一个最小的随机示例,没有计算导致问题的烧瓶(实际上正在工作)(在 flask/waitress 设置中)。
import pandas as pd
import numpy as np
#import faulthandler
#faulthandler.enable()
n = 547
t = 50
data = np.random.random(size=(n*t,2))*10**-6
times = pd.date_range(start="20210501",end="20210502",periods=t)
index = pd.MultiIndex.from_product([times,range(n)],names=["time","id"])
df = pd.DataFrame(data,index=index, columns=["lon","lat"])
for time, group in df.groupby("time"):
print(group)
if group['lon'].max() == group['lon'].min():
cov = np.zeros((2,2))
else:
if group['lat'].max() == group['lat'].min():
cov = np.zeros((2,2))
else:
cov = np.cov(group['lat'].astype(float),
group['lon'].astype(float))
print(cov)
当从女服务员提供的烧瓶应用程序端点执行计算(作为函数调用)时,发生分段错误。它不是直接由 np.cov 引起的,因为调用 returns 很好。数据非常小(大约(500,2))。但是分段错误确实发生在循环内。有时 150. 迭代,有时更早,有时从不。我在 np.cov 之后检查了内存使用情况,它总是在 100mb 左右。可用空间约为 16GB。
也许这对某些人有意义?或者在烧瓶应用程序中使用 pandas/numpy 可能是不好的做法?提前致谢!!
烧瓶 1.1.2
服务员 1.4.3
麻木 1.19.1
pandas1.1.3
更新所有软件包解决了问题
我想在更复杂的 Flask 应用程序中执行简单的协方差计算。下面我创建了一个最小的随机示例,没有计算导致问题的烧瓶(实际上正在工作)(在 flask/waitress 设置中)。
import pandas as pd
import numpy as np
#import faulthandler
#faulthandler.enable()
n = 547
t = 50
data = np.random.random(size=(n*t,2))*10**-6
times = pd.date_range(start="20210501",end="20210502",periods=t)
index = pd.MultiIndex.from_product([times,range(n)],names=["time","id"])
df = pd.DataFrame(data,index=index, columns=["lon","lat"])
for time, group in df.groupby("time"):
print(group)
if group['lon'].max() == group['lon'].min():
cov = np.zeros((2,2))
else:
if group['lat'].max() == group['lat'].min():
cov = np.zeros((2,2))
else:
cov = np.cov(group['lat'].astype(float),
group['lon'].astype(float))
print(cov)
当从女服务员提供的烧瓶应用程序端点执行计算(作为函数调用)时,发生分段错误。它不是直接由 np.cov 引起的,因为调用 returns 很好。数据非常小(大约(500,2))。但是分段错误确实发生在循环内。有时 150. 迭代,有时更早,有时从不。我在 np.cov 之后检查了内存使用情况,它总是在 100mb 左右。可用空间约为 16GB。
也许这对某些人有意义?或者在烧瓶应用程序中使用 pandas/numpy 可能是不好的做法?提前致谢!!
烧瓶 1.1.2 服务员 1.4.3 麻木 1.19.1 pandas1.1.3
更新所有软件包解决了问题