Python中numpy和pandas常见问题求解答
现在我有一列不等长数组:
a = [[1,0,1,0],
[1,0,1],
[1,0,1,1,1],
…
]
我该怎样才能对这个数组求和呢?得到这样的序列[2,2,4...]?
求各位大佬赐教!感激不尽
Python中numpy和pandas常见问题求解答
[sum(x) for x in a]
我无法理解你的问题
这样太慢了
谢谢各位,我已经找到方法了 233:
把数组 flat 以后,用 np.add.reduceat()方法
df.sum(axis=1)
import pandas as pd
In [3]:
b
a = [[1,0,1,0],
[1,0,1],
[1,0,1,1,1]
]
b=pd.DataFrame(a)
print b.sum(axis=1)
0 2.0
1 2.0
2 4.0
dtype: float64
np.sum(a, axis=1)
这个 work ,但是速度比较慢,还要解决 na 值
这个根本不会 work
如果你的数据是一个嵌套列表,那么 list(map(sum, data))最快,如果你的数据是数组列表,那么[row.sum() for row in data]最快。至于是嵌套列表好还是数组列表好,要看每条数据的平均长度,数据越长,使用 numpy 数组越快。我猜你的数据是数组列表,你可以比较一下[row.sum() for row in data]和你的 flat 数组的方法,应该是我这个更快。因为将所有这些数组拼在一起就很浪费时间。
https://gist.github.com/ruoyu0088/83eeb57dfe5cb8fe62db91d88fe34598

