【问题标题】:Iterating through each array to calculate z-score遍历每个数组以计算 z 分数
【发布时间】:2019-09-09 07:27:57
【问题描述】:

我有一个数组数组,我需要计算每个数组的 z 分数,即该数组数组中每一行的 z 分数。

我的代码:

for x in train_image_resize:
    train_image_resize_mean = scipy.stats.zscore(x)

错误: C:\ProgramData\Anaconda3\lib\site-packages\scipy\stats\stats.py:2253: RuntimeWarning: true_divide return (a - mns) / sstd 中遇到无效值

如果我执行scipy.stats.zscore(train_image_resize),那么它会计算数组数组中每个数字的 z 分数。但是,我希望为每个数组计算一个 z-score。

【问题讨论】:

    标签: python arrays


    【解决方案1】:

    这表明您正在除以零,即样本标准差消失;例如:

    In [5]: scipy.stats.zscore([1, 1])
    ..\miniconda3\lib\site-packages\scipy\stats\stats.py:2315: RuntimeWarning: invalid value encountered in true_divide
      return (a - mns) / sstd
    Out[5]: array([nan, nan])
    

    【讨论】:

    • train_image_resize 是数组的数组。如果我在 train_image_resize 中选择 x,那么代码如何使标准偏差为零。
    • 如果x 只包含一个不同的元素,即是一个常量数组,那么就会发生这种情况。
    • 这是数组:array([[ 95, 101, 99, ..., 116, 118, 96], [ 91, 92, 91, ..., 100, 90, 81 ], [ 87, 70, 72, ..., 80, 84, 90], ..., [133, 102, 121, ..., 130, 131, 111], [118, 117, 115, ... .., 100, 100, 109], [ 74, 89, 92, ..., 126, 116, 106]], dtype=int64)
    • 该输出被截断,因此潜在的常量数组可能隐藏在...中。
    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多