小编Tin*_*han的帖子

烧瓶不释放记忆

我将从这个问题开始,指出我对Web开发很新.

现在到了这一点:我最近构建了一个相当小的Flask应用程序,它可以加载数据然后使用它输出它的可视化bokeh.因此,它必须将大量数据存储在内存中(大约10-20 mb).这本身并不是一个真正的问题,但是,在视图函数发送请求后,应用程序不会释放内存中的对象.这意味着只需几次使用后,应用程序就会耗尽大部分内存.

因此,我的问题是:Flask在视图函数返回任何请求后,如何强制释放已使用的对象?或者我是以错误的方式解决这个问题?值得一提的是,我使用内置服务器,Flask因为我们仍然只是原型.¨谢谢,Tingis

编辑这是我的一个视图功能.它的作用是它使用db加载数据SQLAlchemy,然后进行一些时间序列操作(例如内核密度估计和计算累积回报),并输出一个连接divscript一个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)

python flask

9
推荐指数
1
解决办法
3915
查看次数

查找给定日期,熊猫的季度结束日期

假设我们有一个像这样的表

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_datedf这样

        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)

python pandas

6
推荐指数
2
解决办法
5958
查看次数

pdfkit 不加载 css 和 JavaScript

我目前正在使用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)

javascript css python pdfkit flask

6
推荐指数
1
解决办法
7364
查看次数

使用PyODBC,Python连接到SQLite3服务器

我正在尝试测试一个在给定查询的情况下从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)

python sql sqlite

5
推荐指数
1
解决办法
4528
查看次数

将两个2D numpy数组乘以3D数组

我有两个二维numpy数组叫AB,这里AM x NBM 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)

python arrays numpy multidimensional-array

4
推荐指数
1
解决办法
1281
查看次数

矢量化搜索排序numpy

假设我有两个数组AB,其中两个ABm x n.我的目标是现在,对于每一行AB,找到我应该在哪里插入行的元素iA的相应行中B.也就是说,我希望申请np.digitizenp.searchsorted每行AB.

我天真的解决方案是简单地迭代行.但是,这对我的应用来说太慢了.因此,我的问题是:是否存在我无法找到的算法的矢量化实现?

python performance numpy vectorization

4
推荐指数
1
解决办法
767
查看次数

使用熊猫和scipy的树状图

我希望使用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)

python scipy pandas

3
推荐指数
1
解决办法
3724
查看次数