将NxM的numpy数组转换为(N*M)x1
我有一个numpy数组,看起来像这样:
day1, day2, ..., dayM
year month
1 .
2 .
. .
. .
. .
N (yearN,dayM)
对我来说,这种格式有点奇怪。我更希望把数据放在一列里,这样在处理的时候更方便,之后再加载到pandas中(或者如果有更方便的方法,我可以直接从pandas开始)。
有没有一些简单的方法可以专门处理“天”这一行和列呢?我对“年”和“月”不太在意,所以我们可以假装它们不存在。
补充一下:我忘了提,虽然“天”这个矩阵的每一行都是31个长度,但我只需要保留与该月份对应的数字(包括闰年)。看起来可能需要用到循环……
1 个回答
1
最后,调整形状的方法是最有效的。这就是我最终使用的方式,速度比我想象的要快很多。
reshaped = np.reshape(X,N*M)
result = np.delete(reshaped, np.where(reshaped==32744))
这里的 X 是上面提到的矩阵。np.delete
是用来去掉那些在少于31天的月份末尾填充的值。