Python 将NxM numpy数组转换为(N*M)x1
我有一个numpy数组,看起来像这样:Python 将NxM numpy数组转换为(N*M)x1,python,arrays,numpy,pandas,Python,Arrays,Numpy,Pandas,我有一个numpy数组,看起来像这样: day1, day2, ..., dayM year month 1 . 2 . . . . . . . N (yearN,dayM) 在我看来
day1, day2, ..., dayM
year month
1 .
2 .
. .
. .
. .
N (yearN,dayM)
在我看来,这种格式有点奇怪。对于这类工作,我宁愿将数据放在一列中,然后加载到pandas中(或者如果有更方便的方法,我可以从加载到pandas开始)
是否有一些简单的方法可以专门用于“day”行和列?我不太关心“年”和“月”,所以让我们假装它们不在那里
编辑:我忘了提到,虽然“日”矩阵中的每一行长度为31,但我只需要保留对应于该月的数字(包括闰年)。看来是时候做个循环了 重塑建议最终效果最好。这就是最终对我起作用的原因,而且比我想象的要快得多
reshaped = np.reshape(X,N*M)
result = np.delete(reshaped, np.where(reshaped==32744))
其中X是上述矩阵。
np.delete
是为了在不到31天的月份结束时去掉矩阵中的填充值。您尝试过numpy的功能吗?应该非常直接地使用pandasstack
和一些字符串解析。@U2EF1我以前从未使用过stack,但实际上它看起来非常有用。不过,可能需要对索引的后记进行一点修改。