3 回答

TA贡献1844条经验 获得超8个赞
如果我理解正确,您正在尝试在每一行中找到百分比变化,那么您可以执行以下操作:
>>> np.diff(a) / a[:,1:] * 100
这给了你:
array([[ 50. , 33.33333333, 40. , 28.57142857],
[ 75. , 20. , 16.66666667, 14.28571429],
[ 37.5 , 11.11111111, 10. , 68.75 ],
[ 40. , 16.66666667, 53.84615385, -18.18181818]])

TA贡献1725条经验 获得超7个赞
我知道您在问这个问题时考虑到了 Numpy 并在上面得到了答案:
import numpy as np
np.diff(a) / a[:,1:]
我试图用 Pandas 来解决这个问题。对于那些有同样问题但使用 Pandas 而不是 Numpy 的人
import pandas as pd
data = [[1,2,3,4,5],
[1,4,5,6,7],
[5,8,9,10,32],
[3,5,6,13,11]]
df = pd.DataFrame(data)
df_change = df.rolling(1,axis=1).sum().pct_change(axis=1)
print(df_change)

TA贡献1804条经验 获得超2个赞
import numpy as np
a = np.array([[1,2,3,5,7],
[1,4,5,6,7],
[5,8,9,10,32],
[3,5,6,13,11]])
np.array([(i[:-1]/i[1:]) for i in a])
添加回答
举报