努比np.arange公司导致内核死亡并恢复

2024-09-28 17:23:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个x轴,以我设置的频率打勾,使我的所有数字看起来都一样。我有一个名为summertime的534个datetime值的数组,我正在尝试将这些datetime之间的x轴设为频率为10。你知道吗

 ax1.xaxis.set_ticks( np.arange(summertime.min(), summertime.max(), 10))

代码运行了几天,然后在我更改变量时崩溃了。没有出现错误,它只是说它运行了一段时间,然后导致内核崩溃。而且,它看起来像是用光了我电脑上的大部分内存来运行这个。我看着它在运行这个时烧到20gb。你知道吗

不太清楚到底发生了什么,但非常希望得到一些关于如何修复这个bug的建议。你知道吗

Ran the code. Been waiting 2 min. Memory jumped from 54% to 92%. Whole computer slowing down

The aftermath. Took several minutes and all computer functions slowed down. It quit Microsoft Word and Chrome suddenly (without asking) then restarted Kernel


Tags: anddatetimenp数字数组mincomputer频率
2条回答

语法上没有错。问题可能是这个范围夏季时间.max() - 夏季.min()太大。你知道吗

我刚执行了死刑

    ax4.xaxis.set_ticks(np.arange(0.5,100,10)) 

在我的电脑上运行的很好。但如果我执行

   ax4.xaxis.set_ticks(np.arange(0.5,100000000,10)) 

它给了我记忆错误。你知道吗

你能分享一下夏季数据框的信息吗。你知道吗

显然,当你打电话的时候

np.arange(summertime.min(), summertime.max(), 10)

该值的单位10datetime对象的最小单位,即微秒。给定开始和结束日期,对arange的调用试图创建一个长度为198707200000的数组。这将需要超过1 TB的内存。你知道吗

你说“我试图用频率为10的datetime之间的x轴”,但你没有说10的单位是什么。10分钟?小时?几秒钟?你知道吗

假设是10个小时。可以将增量指定为微秒数,也可以指定为datetime.timedelta对象。例如

In [43]: mn = datetime.datetime(2015, 7, 24, 0, 10, 40) 

In [44]: mx = datetime.datetime(2015, 8, 16, 0, 8, 32)

In [45]: np.arange(mn, mx, 10*3600*1000000)  # Increment is 10 hours, expressed in microseconds
Out[45]: 
array(['2015-07-24T00:10:40.000000', '2015-07-24T10:10:40.000000',
       '2015-07-24T20:10:40.000000', '2015-07-25T06:10:40.000000',
       '2015-07-25T16:10:40.000000', '2015-07-26T02:10:40.000000',
       '2015-07-26T12:10:40.000000', '2015-07-26T22:10:40.000000',
       '2015-07-27T08:10:40.000000', '2015-07-27T18:10:40.000000',
       '2015-07-28T04:10:40.000000', '2015-07-28T14:10:40.000000',
       '2015-07-29T00:10:40.000000', '2015-07-29T10:10:40.000000',
       '2015-07-29T20:10:40.000000', '2015-07-30T06:10:40.000000',
       '2015-07-30T16:10:40.000000', '2015-07-31T02:10:40.000000',
       '2015-07-31T12:10:40.000000', '2015-07-31T22:10:40.000000',
       '2015-08-01T08:10:40.000000', '2015-08-01T18:10:40.000000',
       '2015-08-02T04:10:40.000000', '2015-08-02T14:10:40.000000',
       '2015-08-03T00:10:40.000000', '2015-08-03T10:10:40.000000',
       '2015-08-03T20:10:40.000000', '2015-08-04T06:10:40.000000',
       '2015-08-04T16:10:40.000000', '2015-08-05T02:10:40.000000',
       '2015-08-05T12:10:40.000000', '2015-08-05T22:10:40.000000',
       '2015-08-06T08:10:40.000000', '2015-08-06T18:10:40.000000',
       '2015-08-07T04:10:40.000000', '2015-08-07T14:10:40.000000',
       '2015-08-08T00:10:40.000000', '2015-08-08T10:10:40.000000',
       '2015-08-08T20:10:40.000000', '2015-08-09T06:10:40.000000',
       '2015-08-09T16:10:40.000000', '2015-08-10T02:10:40.000000',
       '2015-08-10T12:10:40.000000', '2015-08-10T22:10:40.000000',
       '2015-08-11T08:10:40.000000', '2015-08-11T18:10:40.000000',
       '2015-08-12T04:10:40.000000', '2015-08-12T14:10:40.000000',
       '2015-08-13T00:10:40.000000', '2015-08-13T10:10:40.000000',
       '2015-08-13T20:10:40.000000', '2015-08-14T06:10:40.000000',
       '2015-08-14T16:10:40.000000', '2015-08-15T02:10:40.000000',
       '2015-08-15T12:10:40.000000', '2015-08-15T22:10:40.000000'], dtype='datetime64[us]')

In [46]: np.arange(mn, mx, datetime.timedelta(hours=10))  # Increment is 10 hours, expressed using a datetime.timedelta
Out[46]: 
array(['2015-07-24T00:10:40.000000', '2015-07-24T10:10:40.000000',
       '2015-07-24T20:10:40.000000', '2015-07-25T06:10:40.000000',
       '2015-07-25T16:10:40.000000', '2015-07-26T02:10:40.000000',
       '2015-07-26T12:10:40.000000', '2015-07-26T22:10:40.000000',
       '2015-07-27T08:10:40.000000', '2015-07-27T18:10:40.000000',
       '2015-07-28T04:10:40.000000', '2015-07-28T14:10:40.000000',
       '2015-07-29T00:10:40.000000', '2015-07-29T10:10:40.000000',
       '2015-07-29T20:10:40.000000', '2015-07-30T06:10:40.000000',
       '2015-07-30T16:10:40.000000', '2015-07-31T02:10:40.000000',
       '2015-07-31T12:10:40.000000', '2015-07-31T22:10:40.000000',
       '2015-08-01T08:10:40.000000', '2015-08-01T18:10:40.000000',
       '2015-08-02T04:10:40.000000', '2015-08-02T14:10:40.000000',
       '2015-08-03T00:10:40.000000', '2015-08-03T10:10:40.000000',
       '2015-08-03T20:10:40.000000', '2015-08-04T06:10:40.000000',
       '2015-08-04T16:10:40.000000', '2015-08-05T02:10:40.000000',
       '2015-08-05T12:10:40.000000', '2015-08-05T22:10:40.000000',
       '2015-08-06T08:10:40.000000', '2015-08-06T18:10:40.000000',
       '2015-08-07T04:10:40.000000', '2015-08-07T14:10:40.000000',
       '2015-08-08T00:10:40.000000', '2015-08-08T10:10:40.000000',
       '2015-08-08T20:10:40.000000', '2015-08-09T06:10:40.000000',
       '2015-08-09T16:10:40.000000', '2015-08-10T02:10:40.000000',
       '2015-08-10T12:10:40.000000', '2015-08-10T22:10:40.000000',
       '2015-08-11T08:10:40.000000', '2015-08-11T18:10:40.000000',
       '2015-08-12T04:10:40.000000', '2015-08-12T14:10:40.000000',
       '2015-08-13T00:10:40.000000', '2015-08-13T10:10:40.000000',
       '2015-08-13T20:10:40.000000', '2015-08-14T06:10:40.000000',
       '2015-08-14T16:10:40.000000', '2015-08-15T02:10:40.000000',
       '2015-08-15T12:10:40.000000', '2015-08-15T22:10:40.000000'], dtype='datetime64[us]')

相关问题 更多 >