1

我有一段python代码在定义输入参数后将值返回给系统。我对已返回系统的样本数量有疑问。

我有以下代码:

import sys
import numpy.random

def Weibull_Random(alpha,beta,Iterations):

    a=alpha
    b=beta


    weibull_rand=numpy.random.weibull(a,[Iterations])

    rand_sample=((weibull_rand)*b)

    return (rand_sample)

if __name__ == '__main__':
    alpha = float(sys.argv[1])
    beta = float(sys.argv[2])
    Iterations = float(sys.argv[3])
    sys.stdout.write(str(Weibull_Random(alpha,beta,Iterations)))

样本的数量由 定义Iterations,我们可以将 alpha 和 beta 设置为一系列不同的数字,比如alpha=2这个beta=15问题。如果 Iterations=1000 或更少,则所有数字都将返回给系统。如果 Iterations=1001 或更大,则系统返回

[ 15.33018892  3.22693971  10.02243413 ...,  8.87121152  14.29458731
  15.13458017]

有谁知道如何将所有值返回到系统?

我正在使用带有 Numpy 和 Scipy (pyzo2013b) 的 Windows 7 和 Python 3。

4

2 回答 2

1

这与系统无关,而是由numpy. 最简单的解决方法是修改您的脚本以调用numpy.set_printoptions如下:

if __name__ == '__main__':
    alpha = float(sys.argv[1])
    beta = float(sys.argv[2])
    Iterations = float(sys.argv[3])
    numpy.set_printoptions(threshold=Iterations)   # Force threshold to iteration count.
    sys.stdout.write(str(Weibull_Random(alpha,beta,Iterations)))

在此代码段中,我强制numpy将汇总阈值设置为迭代次数。

于 2013-07-10T10:02:04.600 回答
0

如下替换最后一行,您将看到所有值:

sys.stdout.write(str(Weibull_Random(alpha,beta,Iterations).tolist()))
于 2013-07-10T10:01:26.300 回答