Python 列表表示法,Numpy 数组表示法 : predictions[predictions < 1e-10] = 1e-10

标签 python python-3.x numpy

我正在尝试找出应用于列表的操作。我有列表/数组名称预测并执行以下指令集。

predictions[predictions < 1e-10] = 1e-10

此代码片段来自使用 Numpy 的 Udacity 机器学习作业。

它的使用方式如下:

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]

正如@MosesKoledoye 和其他人所指出的,它实际上是一个 Numpy 数组。 (Numpy 是一个 Python 库)

这条线是做什么的?

最佳答案

正如@MosesKoledoye 所指出的,predictions很可能是 numpy大批。

然后将使用 predictions < 1e-10 生成 bool 数组.在条件设置的 bool 数组为 True 的所有索引处, 该值将更改为 1e-10 , IE。 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])

在代码中这样做的原因可能是为了防止被零除或通过插入一个非常小的数字来防止负数弄乱事情。

关于Python 列表表示法,Numpy 数组表示法 : predictions[predictions < 1e-10] = 1e-10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38563377/

相关文章:

python - 匹配excel单元格中的字符串并将特定值写入新/相邻单元格Python

python - "OSError: [Errno 22] Invalid argument"当读取大文件时

python - 如何在Python中使用group-by函数保留列名?

python - 如何忽略带引号的字段中的 CSV 分隔符?

python - 如何在 Django 模板中访问和显示 Cloudinary 上传的图片

python - 如何在python中使用迭代器

javascript - 如何在 one2many odoo 13 上触发计算

python - 在python中存储百万像素的最佳数据结构?

python - 与 Python numpy 矩阵不一致的结果

python-2.7 - numpy 数组中连续元素的第一次出现