Numpy/Pandas有效矩阵

2024-03-28 22:04:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常大的矩阵,它有X多行,每行有10000或1列。比如:

[[0, 1, 2, ..., 9999],
 [10000, 10001, ..., 19999],
 [20000],
 [20001, 20002, ..., 30000]]

我希望能够对列进行求和,例如[50001, 50004, ..., 79998],但是我不认为我可以创建一个numpy.array或一个pandas.DataFrame来适应这种情况,而不需要重复20000值10000次。你知道吗

我目前已经在pandas中破解了一个解决方案,但我希望有更好的方法。你知道吗

我的pandas解决方案是使用一个包含python list的列或一个值(我似乎不能使用numpy.arraypandas来假设我正在尝试跨多个索引设置这些值)。我的jank解决方案是这样的:

DataFrame
             value
0:    [0, 1, 2, ..., 9999]
1: [10000, 10001, ..., 19999]
2:           20000
3: [20001, 20002, ..., 30000]

df['value'].agg(lambda vs: np.array(vs.apply(np.array).sum()).tolist())

这很难看,但是允许索引2的单个值的内存效率。你知道吗

有没有一种更干净、更不容易出错的方法来使用numpypandas来做到这一点?或者一种方法,如果选择重复单个值,就不会破坏我机器上的内存。你知道吗

谢谢


Tags: 方法内存numpydataframepandasdfvaluenp