草庐IT

random-walk

全部标签

python - 如何在抽象语法树上递归执行 "tree walk"?

我的语言的简单赋值示例:x=3->这是解析后生成的AST(在Python中):[('statement',('assignment','x',('assignment_operator','='),('expr',('term',('factor','3')))),'->')]我怎样才能递归访问任何可能的深度,以便在最微不足道的情况下打印所有这些深度?(或将文本转换成其他内容?)。是否有执行此操作的特定算法?如果有,您有什么具体的Material推荐吗? 最佳答案 要遍历树,只需使用堆栈或队列(取决于您是想深度优先还是呼吸优先)。对

python - np.random.multivariate_normal 的混淆行为

我正在使用numpy从多元正态采样,如下所示。mu=[0,0]cov=np.array([[1,0.5],[0.5,1]]).astype(np.float32)np.random.multivariate_normal(mu,cov)它给了我以下警告。RuntimeWarning:covarianceisnotpositive-semidefinite.矩阵显然是PSD。但是,当我使用np.float64数组时,它工作正常。我需要协方差矩阵为np.float32。我究竟做错了什么? 最佳答案 这是fixed2019年3月。如果您仍

python - os.walk 获取目录名

我有这样的文件结构:d:\temp\random1\index.htmld:\temp\random2\index.htmld:\temp\random3\index.html我想获取在python中列出的路径。所以输出将是:files=['path':'d:\temp\random1\index.html','directory':'random1']我正在使用这样的代码:files=[]fordirpath,dirnames,filenamesinos.walk('D:\\temp'):forfnameinfilenames:iffname.endswith(".md"):path

python - 为什么 python 的 os.walk() 不反射(reflect)目录删除?

我正在尝试编写一个Python函数,它将递归地删除所有空目录。这意味着如果目录“a”仅包含“b”,则应删除“b”,然后应删除“a”(因为它现在什么都不包含)。如果一个目录包含任何东西,它就会被跳过。图解:top/a/b/top/c/d.txttop/c/foo/鉴于此,应该删除“b”、“a”和“foo”三个目录,因为“foo”和“b”现在是空的,删除“b”后“a”将变为空".我正在尝试通过os.walk和shutil.rmtree执行此操作。不幸的是,我的代码只删除了第一级目录,而不是在此过程中新清空的目录。我正在使用os.walk的topdown=false参数。documentat

python 3 : random. 种子 () : where to call it?

我需要确保我程序中的所有随机性都是完全可复制的。我应该在哪里调用random.seed()?我认为它应该在我的main.py模块中,但它导入了碰巧使用随机函数的其他模块。我可以仔细浏览我的导入以查看哪个是第一个执行的,但是当我更改代码结构时,我将不得不记住再次重做此分析。有什么简单安全的解决方法吗? 最佳答案 在主模块的“导入部分”执行代码实际上是安全的,所以如果您不确定导入可能会或可能不会使用随机模块的其他模块,也许绕过您的种子,您当然可以使用像importrandomrandom.seed(seed_value)importso

python - 如何使用 numpy.random.rand 设置生成点的最小距离约束?

我正在尝试生成一个有效的代码来生成一些随机位置向量,然后我用它来计算一对相关函数。我想知道是否有直接的方法来限制放置在我的框中的任意两点之间允许的最小距离。我目前的代码如下:defpointRun(number,dr):"""Computethe3Dpaircorrelationfunctionforarandomdistributionof'number'particlesplacedintoa1.0x1.0x1.0box."""##Createarrayofdistancesoverwhichtocalculate.r=np.arange(0.,1.0+dr,dr)##Genera

python - 在 FTP 服务器上扩展 Python 的 os.walk 功能

如何让os.walk遍历FTP数据库(位于远程服务器上)的目录树?现在代码的结构方式是(提供注释):importfnmatch,os,ftplibdeffind(pattern,startdir=os.curdir):#findfunctiontakingvariablesforbothdesiredfileandthestartingdirectoryfor(thisDir,subsHere,filesHere)inos.walk(startdir):#eachofthevariableschangeasthedirectorytreeiswalkedfornameinsubsHer

Python random.Random(bytearray) 类型错误 : unhashable type

在Python3中,random.Random(seed)允许使用字节数组来播种。classRandom(_random.Random):...def__init__(self,x=None):self.seed(x)...defseed(self,a=None,version=2):...ifversion==2andisinstance(a,(str,bytes,bytearray)):ifisinstance(a,str):a=a.encode()a+=_sha512(a).digest()a=int.from_bytes(a,'big')...当你尝试>>>random.Ran

python - 在 Python3 中使用 `random.shuffle` 作为关键字参数时 `random.random` 的运行时间更短

我只是观察到,当使用Python3时,使用random.shuffle对列表进行洗牌需要大约一半的运行时间,而当为显式提交函数random.random>random关键字参数。我检查了Python2是否有同样的问题,发现它只出现在Python3。我使用下面的代码来测量两个版本的运行时间:fromtimeitimportTimert1=Timer("random.shuffle(l)","importrandom;l=list(range(100000))")t2=Timer("random.shuffle(l,random=random.random)","importrandom;

python - 为什么 numpy.random.binomial(1, nan) = -9223372036854775807?

如标题所示,我希望它也是一个nan。这个数字很特别吗? 最佳答案 这显然是numpy.ramdom.binomial中的错误。Isthisnumberspecial?我猜这是一些涉及nan的原始表示(表示为特定“保留”浮点值)的计算结果。(Moreonthat)实现者可能忘记检查nan的输入并在(C级)计算中包含nan的原始表示。 关于python-为什么numpy.random.binomial(1,nan)=-9223372036854775807?,我们在StackOverflow