以下是代码示例:
在 Python 3.5 中运行此代码会得到以下结果:
def computerCost(x,y,theta):
m = len(y)
J = np.sum((np.dot(x,theta) - y)**2) /(2*m)
return J
m = 100
x = np.linspace(-5,10,m)
y = np.linspace(1,100,m)
x, y = x.reshape(m,1), y.reshape(m,1)
theta_0 = np.linspace(-10,10,100)
theta_1 = np.linspace(-1,4,100)
X,Y = np.meshgrid(theta_0,theta_1)
###### Here I want to initialize a numpy array with generator.
J_vals = np.array(computerCost(x,y,np.array([a,b])) for a,b in zip(np.ravel(X), np.ravel(Y)) )
print('out:',J_vals)
在 Python 3.5 中运行此代码会得到以下结果:
out:<generator object <genexpr> at 0x0000028ACF28B258>
控制台显示J_vals是一个生成器。有什么办法可以将生成器转换为np.ndarray
吗?
zip()
和fromiter()
。 - Nils Wernernp.dot(x, theta)
,其中x
是形状为(100, 1)
的数组,而theta
的形状为(2,)
。这样做是行不通的。你能否尝试解释一下你在这里尝试做什么数学运算? - Nils Wernerfor
循环和zip
的情况下完成它。 - Nils Werner