首页   注册   登录
 dwjgwsm 最近的时间轴更新

dwjgwsm

V2EX 第 275684 号会员,加入于 2017-12-20 09:05:11 +08:00
紧急求助!测试 shutdown 命令导致开机后立马关机
问与答  •  dwjgwsm  •  199 天前  •  最后回复来自 loveour
30
请问如何实现 open pickle 文件后先读后写?
Python  •  dwjgwsm  •  208 天前  •  最后回复来自 dwjgwsm
5
请问正则表达式如何排除一个特定的单词?
Python  •  dwjgwsm  •  239 天前  •  最后回复来自 Hopetree
4
为什么我用 numba 速度不升反降?
Python  •  dwjgwsm  •  251 天前  •  最后回复来自 xgdgsc
17
如何在类中将字符串转换成变量名?
Python  •  dwjgwsm  •  256 天前  •  最后回复来自 dwjgwsm
38
把字符串变成变量的问题
问与答  •  dwjgwsm  •  266 天前  •  最后回复来自 dwjgwsm
2
日期的格式化问题
问与答  •  dwjgwsm  •  279 天前  •  最后回复来自 dwjgwsm
16
dwjgwsm 最近回复了
@joyfun 谢谢!反复重启,终于以飞快的手速把定时任务给删除了~
208 天前
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
@lieh222 原来是语法写错了!
210 天前
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
如果要这样,那还不如 open 二次 第一次读 第二次写
210 天前
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
要这么操作才行啊
try...except 和 atexit 都不行,singal 倒是可以终止程序,但是不能注册函数,如果注册函数,则无法终止程序,处理函数也不会执行:
#main.py
..........

def hander(a,b):

print('.....test........')

if __name__ == '__main__':

import signal

signal.signal(signal.SIGTERM,hander) #如果注册函数则无法终止程序,不注册则可以终止程序

from PyQt5.QtCore import QCoreApplication

app = QCoreApplication(sys.argv)

main = MainEngine()

main.login()

app.exec_()


#a.py

import signal

import os

os.kill(<pid>,signal.SIGTERM)
239 天前
回复了 dwjgwsm 创建的主题 Python 请问正则表达式如何排除一个特定的单词?
@xiangyuecn 谢谢~!也可以这么写:
x=r'\([^()]*\)'

x=r'\b(?!MAX)[A-Z]+?' + x
@ipwx 试过了,基本上看不出提升效果.

import numpy as np
cimport numpy as np
cimport cython
np.seterr(invalid='ignore')
cdef int CMAX(int x,int y):
return x if x>y else y
cdef int CMIN(int x,int y):
return y if x>y else x

DTYPE1 = np.float
DTYPE2 = np.int
ctypedef np.float_t DTYPE1_t
ctypedef np.int_t DTYPE2_t
@cython.boundscheck(False)
@cython.wraparound(False)
def MA(np.ndarray[DTYPE1_t, ndim=1] npdata,np.ndarray[DTYPE2_t, ndim=1] n):
cdef int L=npdata.shape[0]
cdef int i=0
cdef np.ndarray res=np.zeros(L)
for i from 0<=i<L:
try:
res[i]=np.mean(npdata[i + 1 - n[i]: i + 1])
except:
res[i] =np.nan
return res
@Kirscheis 谢谢你讲的这么详细,我不是科班出身啊,没学过这些算法.不过大家说的前缀和,线段树,dp,我网上大致看了一下.大体的思路就是把数据分割小,避免重复计算.回头去买本算法的书学一下吧.我觉得作用可能不会很大,因为我的情况不是数据长度很大. 先说一下测试结果:
测试了长度为 10 万的数据,
1.在 python 中,map 和列表推导速度基本相同,大概是 2 秒
2.在参数检查中 not np.isnan()会将速度降低 40%左右,这是之前没注意到的
3.对比 cython 和 python,cython 列表推导只比 python 快 12%(想试一下 map,结果还不知道怎么实现,cython 中好像无法实现子函数,编译报错)
@RecursiveG 数据长度几百,但是调用频率特别高,还有其他十几个类似的函数,所以总体运行下来慢的要死,必须想办法从各种角度优化
def MA(npdata,narr): #narr 是一个和 npdata 等长的 ndarray 数组
L=len(npdata)
j=np.arange(1,L+1) #当时还不知道有 enumerate 这个东西,所以传了一个定位数组进去(从 aijam 那儿学了一招,谢谢!)
def IMA(n, k):
if k < n or n<0 or np.isnan(n):
return np.nan
return np.mean(npdata[k - int(n):k])

return np.array(list(map(IMA, narr, j)))

其实就是和 aijam 一样的遍历算法. 我待会儿试试用列表推导和 map 哪个快,之前网上说应该是 map 快.
之前没有装 cython.昨天买了一个大硬盘重装了系统,把 cython 装上去了(因为 vs 的缘故).准备上 cython 看看.回头报告结果
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2462 人在线   最高记录 4019   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 15ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
♥ Do have faith in what you're doing.
沪ICP备16043287号-1