Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在具有嵌套循环的数组中添加行_Python_Arrays_Numpy - Fatal编程技术网

Python 在具有嵌套循环的数组中添加行

Python 在具有嵌套循环的数组中添加行,python,arrays,numpy,Python,Arrays,Numpy,我不熟悉编码,并尝试编写一个程序来计算a/B测试中的样本量,n 我被困在下面主函数中的嵌套循环中。我想创建一个数组,n\u dist\u all,其中有3个不同的行包含n的值,这取决于使用嵌套循环的不同beta值。但是,该函数只是在同一行中添加三个不同beta的值。我正在尝试使用numpy.hstack。我还尝试了连接和附加,但它们都给出了相同的结果 import numpy as np import math import scipy.stats as st def N(alpha, bet

我不熟悉编码,并尝试编写一个程序来计算a/B测试中的样本量,
n

我被困在下面主函数中的嵌套循环中。我想创建一个数组,
n\u dist\u all
,其中有3个不同的行包含
n
的值,这取决于使用嵌套循环的不同beta值。但是,该函数只是在同一行中添加三个不同beta的值。我正在尝试使用
numpy.hstack
。我还尝试了
连接
附加
,但它们都给出了相同的结果

import numpy as np
import math
import scipy.stats as st

def N(alpha, beta, delta):
    Z_alpha = st.norm.ppf(1-alpha)
    Z_beta = st.norm.ppf(1-alpha)
    pA = 0.01
    pB = pA + delta
    qA = 1.0 - pA
    qB = 1.0 - qA

    n = (((Z_alpha*math.sqrt((pA+pB)*(qA+qB)/float(2)))+(Z_beta*math.sqrt((pA*qA)*(pB*qB))))/(pA-pB))**float(2)
    return int(n)


def float_range(start, stop, step):
    i = start
    while i < (stop + step):
        yield i
        i += step


def main():
    n_dist_all = np.array([])

    beta_1 = 0.2
    beta_2 = 0.1
    beta_3 = 0.05
    beta_group = [beta_1, beta_2, beta_3]

    alpha = 0.05

    for beta in beta_group:
        n_dist = np.array([])
        for delta in float_range(0.001,0.03,0.0005):
            n_dist = np.append(n_dist, N(alpha, beta, delta))
        n_dist_all = np.hstack((n_dist_all, n_dist))
        n_dist = []
    print n_dist_all

if __name__ == "__main__":
        main()
将numpy导入为np
输入数学
将scipy.stats导入为st
def N(α、β、δ):
Z_alpha=st.norm.ppf(1-alpha)
Z_β=st.norm.ppf(1-α)
pA=0.01
pB=pA+delta
qA=1.0-帕
qB=1.0-质量保证
n=((Z_alpha*math.sqrt((pA+pB)*(qA+qB)/float(2))+(Z_alpha*math.sqrt((pA*qA)*(pB*qB))/(pA-pB))**float(2)
返回整数(n)
def浮动范围(启动、停止、步进):
i=开始
当我<(停止+步进):
产量一
i+=阶跃
def main():
n_dist_all=np.array([])
β1=0.2
β2=0.1
β_3=0.05
beta_组=[beta_1,beta_2,beta_3]
α=0.05
对于beta_组中的beta:
n_dist=np.array([])
对于浮动范围内的增量(0.001,0.03,0.0005):
n_dist=np.append(n_dist,n(alpha,beta,delta))
n_dist_all=np.hstack((n_dist_all,n_dist))
n_dist=[]
打印n_dist_all
如果名称=“\uuuuu main\uuuuuuuu”:
main()

从python程序将hstack()更改为vstack()。下面的例子

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.array([7,8,9])
np.vstack((a,b,c)) # This give the following array

array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

谢谢你,宋。vstack将每个值放在不同的行中,使用vstack对我的代码稍加修改就可以解决我的问题。然而,我现在使用列表列表代替,并得到了解决方案。