将NxM的numpy数组转换为(N*M)x1

1 投票
1 回答
1754 浏览
提问于 2025-04-18 09:54

我有一个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天的月份末尾填充的值。

撰写回答