2024-04-26 04:52:59 发布
网友
我有一个数组/熊猫行:
array = [0.8, np.nan, 0.1, -0.5, 0.7]
我想要这个输出:
对我来说,这些方法的排列方向不对:
scipy.stats.mstats.rankdata scipy.stats.rankdata
这里有一个方法-
mask = ~np.isnan(a) out = np.full(a.size,np.nan) out[mask] = np.unique(-a[mask],return_inverse=1)[1]+1
样本运行-
既然您提到了Pandas,您可以使用Series.rank方法:
arr = [0.8, np.nan, 0.1, -0.5, 0.7] pd.Series(arr).rank(ascending=False) Out: 0 1.0 1 NaN 2 3.0 3 4.0 4 2.0 dtype: float64
这将创建并返回熊猫系列。如果您想避免创建一个系列,如@ajcr在评论中所述,可以使用rank函数。这将返回一个ndarray:
这里有一个方法-
样本运行-
^{pr2}$既然您提到了Pandas,您可以使用Series.rank方法:
这将创建并返回熊猫系列。如果您想避免创建一个系列,如@ajcr在评论中所述,可以使用rank函数。这将返回一个ndarray:
^{pr2}$相关问题 更多 >
编程相关推荐