如何在Python中的数据集中进行外推/插值

时间:2018-01-21 15:45:33

标签: python data-science

假设我有一个数据集(这是来自财政部网站的每日财政收益率的减少版本)。我在那里人为地创造了一些零来说明我的问题。每行对应一个给定的日期。

问题 - 假设我想在每一行中进行对数或二次外推/插值。有没有快速的方法来做或者必须遍历每一行来填充它?

    x = np.array([[ 1.31,  1.44,  0, 2.51,  0,  0],
                  [ 0,  1.45,  1.63, 2.48,  0,  2.69],
                  [ 1.31,  1.43,  1.59, 2.48,  2.55,  2.71]])

1 个答案:

答案 0 :(得分:1)

这是使用均值插值的基本方法。当然,您可以应用更正式的计算,但这是一个开始

import numpy as np

# Interpolate using the mean of each row

# Your original data
x = np.array([[ 1.31,  1.44,  0, 2.51,  0,  0],
              [ 0,  1.45,  1.63, 2.48,  0,  2.69],
              [ 1.31,  1.43,  1.59, 2.48,  2.55,  2.71]])

print(x)

print()

# for each row in x, set the zero values to the mean of the non zero values
for row in x:
    row[row == 0] = np.mean(row[np.nonzero(row)])

print(x)

以下输出:

[[ 1.31  1.44  0.    2.51  0.    0.  ]
 [ 0.    1.45  1.63  2.48  0.    2.69]
 [ 1.31  1.43  1.59  2.48  2.55  2.71]]

[[ 1.31        1.44        1.75333333  2.51        1.75333333  1.75333333]
 [ 2.0625      1.45        1.63        2.48        2.0625      2.69      ]
 [ 1.31        1.43        1.59        2.48        2.55        2.71      ]]