gpt4 book ai didi

Python——根据相应的掩码数组对数组中的值进行排名

转载 作者:行者123 更新时间:2023-12-01 04:05:27 25 4
gpt4 key购买 nike

我有两个不同的数组:

values = [[ NaN   3.46677628e+01   2.39846527e+02   6.50530212e+02
1.75084473e+03]
[ 1.02219486e+01 8.44505539e+01 1.38439526e+03 4.25593896e+03
4.07225195e+03]
[ 2.91582775e+01 1.73292007e+02 9.09395752e+02 1.85212927e+03
1.12369495e+03]
[ 1.88855534e+01 6.51165543e+01 1.62291489e+02 1.30152039e+02
9.58973465e+01]]

condition = [[0 1 1 1 1]
[1 1 3 3 1]
[1 1 3 3 1]
[1 1 1 1 1]]

我想使用条件创建的掩码,以便我只能对的条目执行操作是 1。我已成功创建蒙版,但我不确定如何执行我想要的操作,如所述。

该操作使用 scipy.stats.rank(???, method = 'ordinal')values 的条目进行排名,我使用的是 ??? 表示我不确定该在那个地方放什么。如果我想对没有掩码的条目进行排名,我知道我会将 values 放在我有 ??? 的位置,但我不想对非 1 进行排名-的值条目。

如有任何建议,我们将不胜感激。

最佳答案

您可以循环遍历子列表来构建一个新列表,并将其传递给rank()

rank_list=[]
for condition_index, sublist in enumerate(condition):
for sublist_index, mask in enumerate(sublist):
If mask==1:
rank_list.append(values[condition_index][sublist_index])
return scipy.stats.rankdata(rank_list, method="ordinal")

关于Python——根据相应的掩码数组对数组中的值进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35688706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com