我是一个在PyCharm(Comm.Ed 4.5)下用Python(3.4)尝试ML / DBN的新手。 以下定义
def make_thetas(xmin,xmax,n):
xs = np.linespace(xmin,xmax,n)
widths = (xs[1:] - xs[:-1])/2.0
thetas = xs[:-1] + widths
return thetas
抛出错误 “类'元组'未定义' sub ',因此' - '运算符不能用于其实例” 在第三行的 - 运算符上(widths = ....) 关于如何在PyCharm下运行此代码的任何想法 - 它在交互式Python窗口中都可以正常工作 THX。
答案 0 :(得分:0)
致全部,
在G'g之后我发现了一个似乎在PyCharm中工作的解决方法。我说解决方法因为(即使是作为Python新手)我期望Python不需要显式类型转换,尤其是在使用从像Numpy这样的lib导入的数据类型时。
def make_thetas(xmin,xmax,n):
xs = np.array(np.linspace(xmin,xmax,n))
widths = (xs[1:] - xs[:-1])/2.0
thetas = xs[:-1]+ widths
return thetas
使用文档字符串进行类型提示(如下所示)无法正常工作
def make_thetas(xmin,xmax,n):
"""
@type xs: np.multiarray.ndarray
"""
xs = np.linspace(xmin,xmax,n)
widths = (xs[1:] - xs[:-1])/2.0 # Error Msg 1
thetas = xs[:-1]+ widths # Error Msg 2 Followup of Error 1
return thetas
错误消息1:' - '
Class'tuple'没有定义' sub ',因此' - '运算符不能在其实例上使用
错误消息2:'widths'
预期类型'元组',而是'浮动'而不是
也许还有其他类型提示可能会起作用......
THX