小编use*_*890的帖子

为什么numpy.zeros占用的空间很小

我想知道为什么numpy.zeros占用这么小的空间?

x = numpy.zeros(200000000)
Run Code Online (Sandbox Code Playgroud)

这不占用任何记忆,

x = numpy.repeat(0,200000000)
Run Code Online (Sandbox Code Playgroud)

占用约1.5GB.numpy.zeros会创建一个空指针数组吗?如果是这样,有没有办法在cython中更改它后将指针设置为空?如果我使用:

x = numpy.zeros(200000000)
x[0:200000000] = 0.0
Run Code Online (Sandbox Code Playgroud)

内存使用率上升.有没有办法改变一个值,然后将其改回原来在python或cython中使用的格式numpy.zeros?

python arrays numpy cython

11
推荐指数
1
解决办法
1560
查看次数

拟合 beta 二项式

我一直在寻找一种将数据拟合到 beta 二项式分布并估计 alpha 和 beta 的方法,类似于 VGAM 库中的 vglm 包的方式。我还没有找到如何在 python 中做到这一点。有一个 scipy.stats.beta.fit() ,但没有用于 beta 二项式分布的内容。有没有办法做到这一点?

python beta statistics scipy binomial-cdf

6
推荐指数
1
解决办法
3600
查看次数

在numpy数组中找到一系列的Trues

有一种很好的方法可以在一个numpy布尔数组中找到一系列的Trues吗?如果我有一个像这样的数组:

x = numpy.array([True,True,False,True,True,False,False])
Run Code Online (Sandbox Code Playgroud)

我可以获得一系列索引:

starts = [0,3]
ends = [1,4]
Run Code Online (Sandbox Code Playgroud)

或任何其他适当的方式来存储此信息.我知道这可以通过一些复杂的while循环来完成,但我正在寻找一种更好的方法.

python arrays boolean numpy

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

为什么R和Python Mann Whitney不同?

我想知道为什么我的答案在python和R中进行mann whitney u测试时是如此不同.在python中:

from scipy.stats import mannwhitneyu
t = [1,2,3]
g = [4,5,6,7,8,9]
mannwhitneyu(t,g)
(0.0, 0.014092901073953692)
Run Code Online (Sandbox Code Playgroud)

在R:

t = c(1,2,3)
g = c(4,5,6,7,8,9)
wilcox.test(t,g, paired = FALSE)

   Wilcoxon rank sum test

data:  t and g
W = 0, p-value = 0.02381
alternative hypothesis: true location shift is not equal to 0
Run Code Online (Sandbox Code Playgroud)

我想知道为什么python看起来更像是单面测试.

python statistics r

3
推荐指数
1
解决办法
1407
查看次数

Beta 二项式和 Beta 分布的 alpha 和 beta 估计

我正在尝试将我的数据拟合到 beta 二项式分布并估计 alpha 和 beta 形状参数。对于此分布,先验值取自 beta 分布。Python 没有用于 beta-binomial 的 fit 函数,但它有用于 beta 的函数。python beta 拟合和 R beta 二项式拟合很接近,但系统性地关闭。

回复:

library("VGAM")
x = c(222,909,918,814,970,346,746,419,610,737,201,865,573,188,450,229,629,708,250,508)
y = c(2,18,45,11,41,38,22,7,40,24,34,21,49,35,31,44,20,28,39,17)
fit=vglm(cbind(y, x) ~ 1, betabinomialff, trace = TRUE)
Coef(fit)
   shape1    shape2 
  1.736093 26.870768
Run Code Online (Sandbox Code Playgroud)

Python:

import scipy.stats
import numpy as np
x = np.array([222,909,918,814,970,346,746,419,610,737,201,865,573,188,450,229,629,708,250,508], dtype=float)
y = np.array([2,18,45,11,41,38,22,7,40,24,34,21,49,35,31,44,20,28,39,17])
scipy.stats.beta.fit((y)/(x+y), floc=0, fscale=1)
    (1.5806623978910086, 24.031893492546242, 0, 1)
Run Code Online (Sandbox Code Playgroud)

我已经这样做了很多次,似乎 python 系统地比 R 结果低一点。我想知道这是我的输入错误还是计算方式的不同?

python beta r parameterization scipy

3
推荐指数
1
解决办法
1798
查看次数