小编eli*_*liu的帖子

python 是否在循环中的迭代结束时进行垃圾收集?

请注意这个简单的代码:

    import random
    while True:
        L = list( str(random.random()))
Run Code Online (Sandbox Code Playgroud)

问题:如果我让它运行,python 会耗尽内存吗?
我问的原因:
此循环的第一次迭代,创建了一个列表,并分配了 'L' 来表示该列表。此循环的下一次迭代,创建另一个列表,从前一个列表中拉出“L”并分配给新列表。之前的列表已经失去了它的参考。之前的列表会被垃圾收集吗?如果不是在每次迭代结束时,但最终我希望?

话虽如此,只需将场景进一步扩展到多处理:

    import random
    while True:
        l1 = list( str(random.random()))            
        pseudo: multiprocessing.Queue.put(l1)
        # how is l1 handled here?
        # is l1 .copy()-ed to the queue or referenced by the queue?
        # is l1 destoryed in this process (this while loop) at the end of iteration?
Run Code Online (Sandbox Code Playgroud)

python garbage-collection loops multiprocessing

8
推荐指数
2
解决办法
4744
查看次数

如何在plotly中将时间线图与散点图结合起来

我有一个数据框df,其中包含随时间变化的值(过程数据)。我有一个数据框ef,其中包含具有开始时间和结束时间的事件(警报)。我想以一种美观的方式将它们组合在一个情节中。

"""
df==
+---------------------+------------+------------+------------+
|                     |   processA |   processB |   processC |
|---------------------+------------+------------+------------|
| 2020-01-01 00:00:00 |    101.764 |   20.0079  |   0.978738 |
| 2020-01-01 00:01:00 |    102.241 |   93.3779  |  -0.977278 |
| 2020-01-01 00:02:00 |    100.95  |   -7.56786 |  -0.103219 |
| 2020-01-01 00:03:00 |    100.411 |    7.20218 |   1.45427  |
| 2020-01-01 00:04:00 |    100.761 |    6.08375 |   0.443863 |
+---------------------+------------+------------+------------+

ef==
+----+-----------------------------------------+---------------------+---------------------+----------+
|    | alm                                     | Start               | Finish              | almid    | …
Run Code Online (Sandbox Code Playgroud)

python pandas plotly plotly-dash

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

matplotlib如何指定时间定位器的开始计时时间戳?

我想要的一切都非常简单,我只希望定位器的滴答声在指定的时间戳记开始:
peudo code: locator.set_start_ticking_at( datetime_dummy )
到目前为止,我还没有找到任何东西的运气。

这是此问题的代码部分:

    axes[0].set_xlim(datetime_dummy) # datetime_dummy = '2015-12-25 05:34:00'
    import matplotlib.dates as matdates
    seclocator = matdates.SecondLocator(interval=20) 
    minlocator = matdates.MinuteLocator(interval=1) 
    hourlocator = matdates.HourLocator(interval=12)

    seclocator.MAXTICKS  = 40000
    minlocator.MAXTICKS  = 40000
    hourlocator.MAXTICKS  = 40000

    majorFmt = matdates.DateFormatter('%Y-%m-%d, %H:%M:%S')  
    minorFmt = matdates.DateFormatter('%H:%M:%S')  

    axes[0].xaxis.set_major_locator(minlocator)
    axes[0].xaxis.set_major_formatter(majorFmt)
    plt.setp(axes[0].xaxis.get_majorticklabels(), rotation=90 )

    axes[0].xaxis.set_minor_locator(seclocator)
    axes[0].xaxis.set_minor_formatter(minorFmt)
    plt.setp(axes[0].xaxis.get_minorticklabels(), rotation=90 )

    # other codes
    # save fig as a picture
Run Code Online (Sandbox Code Playgroud)

上面代码的x轴刻度会告诉我:

在此处输入图片说明

如何告诉次要定位器与主要定位器对齐?
如何告诉定位器从哪个时间戳开始计时?

我曾尝试:
set_xlim不会做的伎俩
seclocator.tick_values(datetime_dummy, datetime_dummy1)不会做任何事情

python matplotlib

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

如何从Anaconda 5.2(使用python 3.6.6)升级到Anaconda 5.3(使用python 3.7)

背景

我在Windows 10上安装 了带有Python版本3.6.5的 Anaconda 5.2
,在撰写本文时,最新的Anaconda版本是5.3,它使用的是Python 3.7.0。最新的python版本是3.7.1

我在cmd中使用了以下命令两次,以更新到最新的Anaconda:

conda update conda
conda update anaconda
Run Code Online (Sandbox Code Playgroud)

上面的最终结果是,Anaconda现在是5.3版,但是python更新到了最新的3.6,但没有更新到3.7。

list anaconda
# packages in environment at C:\Anaconda3:
#
# Name                    Version                  Build  Channel
anaconda                  5.3.0                    py36_0
anaconda-client           1.7.2                    py36_0
anaconda-navigator        1.7.0                    py36_0
anaconda-project          0.8.2                    py36_0

python --version
Python 3.6.6 :: Anaconda, Inc.
Run Code Online (Sandbox Code Playgroud)

如何使用其支持的最新python版本更新到最新的Anaconda?(除了卸载和重新安装)

python anaconda conda

2
推荐指数
1
解决办法
2250
查看次数