我将从这个问题开始,指出我对Web开发很新.
现在到了这一点:我最近构建了一个相当小的Flask应用程序,它可以加载数据然后使用它输出它的可视化bokeh.因此,它必须将大量数据存储在内存中(大约10-20 mb).这本身并不是一个真正的问题,但是,在视图函数发送请求后,应用程序不会释放内存中的对象.这意味着只需几次使用后,应用程序就会耗尽大部分内存.
因此,我的问题是:Flask在视图函数返回任何请求后,如何强制释放已使用的对象?或者我是以错误的方式解决这个问题?值得一提的是,我使用内置服务器,Flask因为我们仍然只是原型.¨谢谢,Tingis
编辑这是我的一个视图功能.它的作用是它使用db加载数据SQLAlchemy,然后进行一些时间序列操作(例如内核密度估计和计算累积回报),并输出一个连接div和script一个bokeh数字字符串,它们是以_plt.结尾的变量.
from app import app
from app.business_logic.classes.interface_classes import Company
from app.business_logic.functions.functions import get_session
@app.route('/analysis_tool/company_performance', methods=['GET', 'POST'])
def analysis_tool__company_performance():
session = get_session()
companies_to_analyse = {
'Company A': {'ts_to_use': 'Returns of Company A'},
'Company B': {'ts_to_use': 'Returns of Company B'}
}
chosen_company = request.form.get('security')
types_of_plots = {}
if chosen_company is not None:
company = Company(session, chosen_company)
company.load_company()
company.load_timeseries(companies_to_analyse[chosen_platform]['ts_to_use'])
company.unpack_observations_of_ts_as_df() …Run Code Online (Sandbox Code Playgroud) 假设我们有一个像这样的表
table = [[datetime.datetime(2015, 1, 1), 1, 0.5],
[datetime.datetime(2015, 1, 27), 1, 0.5],
[datetime.datetime(2015, 1, 31), 1, 0.5],
[datetime.datetime(2015, 2, 1), 1, 2],
[datetime.datetime(2015, 2, 3), 1, 2],
[datetime.datetime(2015, 2, 15), 1, 2],
[datetime.datetime(2015, 2, 28), 1, 2],
[datetime.datetime(2015, 3, 1), 1, 3],
[datetime.datetime(2015, 3, 17), 1, 3],
[datetime.datetime(2015, 3, 31), 1, 3]]
df = pd.DataFrame(table, columns=['Date', 'Id', 'Value'])
Run Code Online (Sandbox Code Playgroud)
有没有办法在列中的日期给出实际季度的具体结束日期Date?例如,我想将列添加Q_date到df这样
Date Id Value Qdate
0 2015-01-01 1 0.5 2015-03-31
1 2015-01-27 1 …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Flask. 我的主管要求一个功能应该是将当前页面保存为 PDF(用于打印)。为此,我正在使用pdfkit. 在有人提议使用之前weasyprint:我尝试安装它 2 小时无济于事,所以我放弃了。我正在使用Bootstrapcss 及其 JavaScript 使应用程序看起来更令人愉快。
我正在使用以下文件结构(如教程所建议的那样Flask)
+-- name_of_app
| +-- static
| +-- css
| +-- css files
| +-- js
| +-- javascript files
| +-- templates
| +-- .html templates
| +-- __init__.py
| +-- config.py
| +-- forms.py
| +-- views.py
+-- run.py
Run Code Online (Sandbox Code Playgroud)
为了尝试pdfkit一下,我每次生成页面时都会生成 PDF,即在views.py. 所有页面均基于以下模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="static\css\bootstrap.css" rel="stylesheet" media="screen">
<link href="static\css\bootstrap-theme.css" …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试一个在给定查询的情况下从SQL服务器加载数据的类.为此,我被指示使用sqlite3.现在,问题是虽然类很容易连接到真正的数据库,但我很难连接sqlite3我创建的临时服务器,因为我无法弄清楚连接字符串应该是什么样子.我pyodbc在课堂上用来连接数据库.那么,有没有人知道连接字符串应该是什么样的?
该课程如下:
import petl as etl
import pyodbc
class Loader:
"""
This is a class from which one can load data from an SQL server.
"""
def __init__(self, connection_string):
"""
This is the initialization file, and it requires the connection_string.
:param connection_string:
:type connection_string: str
:return:
"""
self.connection = pyodbc.connect(connection_string)
def loadFromSQL(self, query):
"""
This function loads the data according to the query passed in query.
:param query:
:type query: str
"""
self.originalTableETL = …Run Code Online (Sandbox Code Playgroud) 我有两个二维numpy数组叫A和B,这里A是M x N和B是M x n.我的问题是我希望将每行的每个元素B与相应的行相乘,A并创建一个C大小的3D矩阵M x n x N,而不使用for-loops.
例如,如果A是:
A = np.array([[1, 2, 3],
[4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)
并且B是
B = np.array([[1, 2],
[3, 4]])
Run Code Online (Sandbox Code Playgroud)
然后得到的乘法C = A x B看起来像
C = [
[[1, 2],
[12, 16]],
[[2, 4],
[15, 20]],
[[3, 6],
[18, 24]] …Run Code Online (Sandbox Code Playgroud) 假设我有两个数组A和B,其中两个A和B的m x n.我的目标是现在,对于每一行A和B,找到我应该在哪里插入行的元素i中A的相应行中B.也就是说,我希望申请np.digitize或np.searchsorted每行A和B.
我天真的解决方案是简单地迭代行.但是,这对我的应用来说太慢了.因此,我的问题是:是否存在我无法找到的算法的矢量化实现?
我希望使用pandas和生成基于相关性的树形图scipy.我使用一个DataFrame由返回组成的数据集(作为a ),其大小n x m,n日期m数和公司数.然后我只是运行脚本
import pandas as pd
import matplotlib.pyplot as plt
from scipy.cluster import hierarchy as hc
import numpy as np
m = 5
dates = pd.date_range('2013-01-01', periods=365)
random_matrix = np.random.normal(0, 0.01, size=(len(dates), m))
dataframe = pd.DataFrame(data=random_matrix, index=dates)
z = hc.linkage(dataframe.values.T, method='average', metric='correlation')
dendrogram = hc.dendrogram(z, labels=dataframe.columns)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我得到了一个很好的树状图.现在,问题是除了普通的Pearson相关之外,我还想使用其他相关度量,这是一个pandas通过简单调用而引入的功能DataFrame.corr(method='<method>').所以,我一开始认为只需运行以下代码即可
import pandas as pd
import matplotlib.pyplot as plt
from scipy.cluster import hierarchy as hc …Run Code Online (Sandbox Code Playgroud)