使用random.uniform给出“只有size-1数组......”错误

时间:2018-03-17 21:43:54

标签: python arrays random

我编写了以下代码,以便在计算中使用这些随机数。运行代码会出错。

import numpy as np
from math import *
from scipy.integrate import quad

sig=10
for i in range (1,10):
    R1=np.random.uniform(0,1,i)
    R2=np.random.uniform(0,1,i)
    def delta():
        d=sig*(sqrt(-2*log(R1))*cos(radians(R2)))
        return d
    print(delta())

它给出了这个错误:

d=sig*(sqrt(-2*log(R1))*cos(radians(R2))) TypeError: only size-1 arrays can be converted to Python scalars

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

更改

d = sig * (sqrt(-2 * log(R1)) * cos(radians(R2)))

d = sig * (np.sqrt(-2 * np.log(R1)) * np.cos(np.radians(R2)))

NumPy函数,np.sqrtnp.lognp.cosnp.radians可以应用于NumPy数组。使用math导入的from math import *函数只能应用于大小为1的标量或数组。