我编写了以下代码,以便在计算中使用这些随机数。运行代码会出错。
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
感谢您的帮助。
答案 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.sqrt
,np.log
,np.cos
,np.radians
可以应用于NumPy数组。使用math
导入的from math import *
函数只能应用于大小为1的标量或数组。