Tae*_*gol 5 python numpy python-3.x
我试图找出应用于列表的操作.我有列表/数组名称预测,并执行以下一组指令.
predictions[predictions < 1e-10] = 1e-10
Run Code Online (Sandbox Code Playgroud)
此代码段来自使用Numpy的Udacity Machine Learning分配.
它以下列方式使用:
def logprob(predictions, labels):
"""Log-probability of the true labels in a predicted batch."""
predictions[predictions < 1e-10] = 1e-10
return np.sum(np.multiply(labels, -np.log(predictions))) / labels.shape[0]
Run Code Online (Sandbox Code Playgroud)
正如@MosesKoledoye和其他各方所指出的那样,它实际上是一个Numpy阵列.(Numpy是一个Python库)
这条线做什么?
正如@MosesKoledoye 所指出的,predictions很可能是一个numpy数组。
然后将使用 生成布尔数组predictions < 1e-10。在条件设置的布尔数组为 的所有索引处True,值将更改为1e-10,即。10 -10。
例子:
>>> a = np.array([1,2,3,4,5]) #define array
>>> a < 3 #define boolean array through condition
array([ True, True, False, False, False], dtype=bool)
>>> a[a<3] #select elements using boolean array
array([1, 2])
>>> a[a<3] = -1 #change value of elements which fit condition
>>> a
array([-1, -1, 3, 4, 5])
Run Code Online (Sandbox Code Playgroud)
在代码中这样做的原因可能是为了防止被零除,或者通过插入一个非常小的数字来防止负数搞乱事情。
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |