我正在尝试将数组“合并”到容器中(类似于直方图)。我有一个输入数组RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC]
RewriteRule ^(.*)$ /$1?lang=%1 [NC,L,QSA]
RewriteCond %{HTTP_COOKIE} !^.*userstate.*$ [NC]
RewriteRule .* /login-error/set-cookie-first.cgi [NC,L]
和一个范围input_array
。整体功能如下所示:
bins = np.linspace(-200, 200, 200)
所以
def bin(arr):
bins = np.linspace(-100, 100, 200)
return np.histogram(arr, bins=bins)[0]
将返回:
bin([64, 19, 120, 55, 56, 108, 16, 84, 120, 44, 104, 79, 116, 31, 44, 12, 35, 68])
但是,我希望我的垃圾箱更“详细”,因为我接近0 ...类似于理想的正态分布。结果,当我接近0时,我可能会有更多的垃圾箱(即短距离),并且当我朝该范围移动时,垃圾箱会更大。有可能吗?
更具体地说,除了在一定范围内具有相同宽度的垃圾箱外,我是否可以有一系列范围,其中朝向中心的垃圾箱小于朝向极端的垃圾箱?
我已经看过诸如this和numpy.random.normal之类的答案,但是有些事情并没有点击右键。
答案 0 :(得分:1)
使用反误差函数生成垃圾箱。您需要缩放垃圾箱以获取所需的精确范围
之所以能够进行此转换,是因为反误差函数在零附近比在+/-一处更平坦。
from scipy.special import erfinv
erfinv(np.linspace(-1,1))
# returns:
array([ -inf, -1.14541135, -0.8853822 , -0.70933273, -0.56893556,
-0.44805114, -0.3390617 , -0.23761485, -0.14085661, -0.0466774 ,
0.0466774 , 0.14085661, 0.23761485, 0.3390617 , 0.44805114,
0.56893556, 0.70933273, 0.8853822 , 1.14541135, inf])