用均值填充缺失值,直到在numpy中得到一定的形状

  • 本文关键字:numpy 填充 python numpy
  • 更新时间 :
  • 英文 :


如何将形状为(22,1)的数组转换为形状为(24,1)的数组?我该如何填补这些缺失的价值?

即My array with shape (22,1).

array([[365.],
[173.],
[389.],
[173.],
[342.],
[173.],
[294.],
[165.],
[246.],
[142.],
[254.],
[142.],
[357.],
[260.],
[389.],
[339.],
[389.],
[339.],
[381.],
[410.],
[381.],
[410.]])

我如何用平均值填充两个缺失的数?此外,如果我有一个形状为(19,1)的数组,我能填充到形状为(24,1)吗?

您可以使用pad()函数:

import numpy as np
A = np.array([[365.],
[173.],
[389.],
[173.],
[342.],
[173.],
[294.],
[165.],
[246.],
[142.],
[254.],
[142.],
[357.],
[260.],
[389.],
[339.],
[389.],
[339.],
[381.],
[410.],
[381.],
[410.]])

B = np.pad(A,((0,24-A.shape[0]),(0,0)),'mean')
print(B)
[[365.        ]
[173.        ]
[389.        ]
[173.        ]
[342.        ]
[173.        ]
[294.        ]
[165.        ]
[246.        ]
[142.        ]
[254.        ]
[142.        ]
[357.        ]
[260.        ]
[389.        ]
[339.        ]
[389.        ]
[339.        ]
[381.        ]
[410.        ]
[381.        ]
[410.        ]
[296.04545455]
[296.04545455]]

使用a.mean()作为平均值,然后使用concatenate:

np.concatenate((a,[[a.mean()]] * (24-len(a))))