小编jkr*_*ish的帖子

如何在Python中生成Log Uniform Distribution?

我找不到Python中的内置函数来生成一个给定最小值和最大值的日志均匀分布(R等价于此处),如:loguni [n,exp(min),exp(max),base]返回n log,均匀分布在exp(min)和exp(max)范围内.

我发现的最接近的是numpy.random.uniform.

python numpy uniform-distribution neuraxle

12
推荐指数
3
解决办法
8271
查看次数

如何随机生成非常小的数字?

假设我想在 [10^-20, 0.1] 范围内绘制一个随机数,我该怎么做?

如果我使用 numpy.random.uniform,我似乎不会低于 10^-2:

In [2]: np.random.uniform(0.1, 10**(-20))
Out[2]: 0.02506361878539856

In [3]: np.random.uniform(0.1, 10**(-20))
Out[3]: 0.04035553250149768

In [4]: np.random.uniform(0.1, 10**(-20))
Out[4]: 0.09801074888377342

In [5]: np.random.uniform(0.1, 10**(-20))
Out[5]: 0.09778150831277296

In [6]: np.random.uniform(0.1, 10**(-20))
Out[6]: 0.08486347093110456

In [7]: np.random.uniform(0.1, 10**(-20))
Out[7]: 0.04206753781952958
Run Code Online (Sandbox Code Playgroud)

或者,我可以生成一个数组,例如:

In [44]: fac = np.linspace(10**(-20),10**(-1),100)

In [45]: fac
Out[45]: 
array([  1.00000000e-20,   1.01010101e-03,   2.02020202e-03,
         3.03030303e-03,   4.04040404e-03,   5.05050505e-03,
         6.06060606e-03,   7.07070707e-03,   8.08080808e-03,
         9.09090909e-03,   1.01010101e-02,   1.11111111e-02,
         1.21212121e-02,   1.31313131e-02,   1.41414141e-02,
         1.51515152e-02,   1.61616162e-02,   1.71717172e-02,
         1.81818182e-02,   1.91919192e-02,   2.02020202e-02,
         2.12121212e-02,   2.22222222e-02,   2.32323232e-02,
         2.42424242e-02,   2.52525253e-02, …
Run Code Online (Sandbox Code Playgroud)

python random numpy python-3.x

6
推荐指数
3
解决办法
2794
查看次数

Ising模型[Python]

我正在尝试在Barabasi-Albert网络中模拟Ising相变,并尝试复制在Ising网格模拟中会观察到的一些可观察到的结果,例如磁化强度和能量。但是,我在解释我的结果时遇到了麻烦:不确定物理学是否错误或实现中是否有错误。这是一个最小的工作示例:

import numpy as np 
import networkx as nx
import random
import math

## sim params

# coupling constant
J = 1.0 # ferromagnetic

# temperature range, in units of J/kT
t0 = 1.0
tn = 10.0
nt = 10.
T = np.linspace(t0, tn, nt)

# mc steps
steps = 1000

# generate BA network, 200 nodes with preferential attachment to 3rd node
G = nx.barabasi_albert_graph(200, 3)

# convert csr matrix to adjacency matrix, a_{ij}
adj_matrix = nx.adjacency_matrix(G)
top = …
Run Code Online (Sandbox Code Playgroud)

python physics montecarlo python-3.x complex-networks

5
推荐指数
1
解决办法
1136
查看次数