V2EX dwjgwsm 的所有回复 第 1 页 / 共 3 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    dwjgwsm    全部回复第 1 页 / 共 3 页
回复总数  48
1  2  3  
2018-05-26 10:06:22 +08:00
回复了 dwjgwsm 创建的主题 问与答 紧急求助!测试 shutdown 命令导致开机后立马关机
@joyfun 谢谢!反复重启,终于以飞快的手速把定时任务给删除了~
2018-05-18 18:06:12 +08:00
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
@lieh222 原来是语法写错了!
2018-05-16 15:22:10 +08:00
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
如果要这样,那还不如 open 二次 第一次读 第二次写
table cellpadding="0" cellspacing="0" border="0" width="100%">
2018-05-16 15:20:07 +08:00
回复了 dwjgwsm 创建的主题 Python 请问如何实现 open pickle 文件后先读后写?
要这么操作才行啊
2018-04-21 10:29:53 +08:00
回复了 dwjgwsm 创建的主题 Python 请问如何在手动停止 py 文件的时候做一些善后工作?
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)
2018-04-17 11:23:06 +08:00
回复了 dwjgwsm 创建的主题 Python 请问正则表达式如何排除一个特定的单词?
@xiangyuecn 谢谢~!也可以这么写:
x=r'\([^()]*\)'

x=r'\b(?!MAX)[A-Z]+?' + x
2018-04-08 12:33:52 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@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
2018-04-08 09:36:17 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@Kirscheis 谢谢你讲的这么详细,我不是科班出身啊,没学过这些算法.不过大家说的前缀和,线段树,dp,我网上大致看了一下.大体的思路就是把数据分割小,避免重复计算.回头去买本算法的书学一下吧.我觉得作用可能不会很大,因为我的情况不是数据长度很大. 先说一下测试结果:
测试了长度为 10 万的数据,
1.在 python 中,map 和列表推导速度基本相同,大概是 2 秒
2.在参数检查中 not np.isnan()会将速度降低 40%左右,这是之前没注意到的
3.对比 cython 和 python,cython 列表推导只比 python 快 12%(想试一下 map,结果还不知道怎么实现,cython 中好像无法实现子函数,编译报错)
2018-04-07 15:34:47 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@RecursiveG 数据长度几百,但是调用频率特别高,还有其他十几个类似的函数,所以总体运行下来慢的要死,必须想办法从各种角度优化
2018-04-07 15:25:09 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
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 看看.回头报告结果
2018-04-07 15:17:01 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@RecursiveG 我先把我写的函数放上来吧,当时我觉得没必要贴一坨代码.刚从外面回来,楼上的各位回复还没仔细看.贴完了,在慢慢看
2018-04-07 08:32:47 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@jmc891205 我觉得恐怕不行,线段树的每个数组起始点和结束点不同.
2018-04-07 08:30:18 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@aijam 我就是这么做的,不过我是用 map 一个子函数来实现的,子函数做了一点参数检查
2018-04-06 23:36:44 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@Kirscheis 对的,a b 数组长度相等, 我再描述一下吧,我们计算平均值,都有个参数 n:n 个数字的平均值, 在这里,数组 b=np.array([2,4,3,5,2,1,4,5,3,2])的每个元素都是对应位置的 n ,比如返回数组是 result_arr,则:

result_arr[9]=(a[8]+a[9])/b[9] #b[9]==2,所以是 2 个元素的平均值
result_arr[8]=(a[6]+a[7]+a[8])/b[8] #b[8]==3,所以是 3 个元素的平均值

不过大哥,你说的我表示完全看不懂啊. 你说"这是 dp 的例题",出自哪里啊?
2018-04-06 17:15:24 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@jmc891205 比如最后一个 8.5=(a[8]+a[9])/b[9]
2018-04-06 17:10:02 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
@kysida map(fun,a,b)的 fun 里面就是用的 np.mean 返回.
2018-04-06 17:08:34 +08:00
回复了 dwjgwsm 创建的主题 Python 求数组的算术平均,但参数是一个数组,怎么高效实现?
抱歉,是我大意了,我以为都能看懂呢,MA 是我自己写的移动平均函数,用的 map 遍历.我想来想去觉得想找更好算法这个问题无解. 卷积,我也想过,问题是每个元素的权重都不同吧. 我没有信心了,想弃楼了
2018-04-05 10:56:22 +08:00
回复了 dwjgwsm 创建的主题 Python 为什么我用 numba 速度不升反降?
@liyuanji1002 算了,运算量整太大了,脱离实际需求也没有意义了.反正优化方案里面已经 pass 掉 numba 了
2018-04-04 16:00:42 +08:00
回复了 dwjgwsm 创建的主题 Python 为什么我用 numba 速度不升反降?
你这个结果也不乐观.看来还是混用不行. 后面再去折腾一下 cython 看看
2018-04-04 15:20:03 +08:00
回复了 dwjgwsm 创建的主题 Python 为什么我用 numba 速度不升反降?
不对啊,我这结果还是 numba 耗时长啊

t1 = time.time()
b=numba_moving_average(a,5)
t2 = time.time()
c=moving_average(a,5)
t3 = time.time()
print(t2-t1)
print(t3 - t2)

结果:

0.7720441818237305
0.008000373840332031
1  2  3  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1085 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 18ms UTC 18:33 PVG 02:33 LAX 11:33 JFK 14:33
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86