Python - 基于另一个数组中相应最大值的非唯一值数组

标签 python

我有一个非唯一数字数组 (x) 和另一个具有相同长度且具有某些值的数组 (y)。我想返回一个与 x 长度相同的数组 (z),但仅在 y 为最大值时显示 x 的唯一值。 例如

x = [0, 2, 2, 2, 0, 3, 3]
y = [1, 1, 1.5, 1, 1, 1.5, 1]
z = [0, 0, 2, 0, 0, 3, 0]

有人知道如何获取数组 z 吗?

最佳答案

您可以使用列表理解和 zip :

x = [0, 2, 2, 2, 0, 3, 3]
y = [1, 1, 1.5, 1, 1, 1.5, 1]

my = max(y)

z = [xi if my == yi else 0 for xi, yi in zip(x, y)]
print(z)

输出

[0, 0, 2, 0, 0, 3, 0]

上面的列表推导式等价于下面的for循环:

z = []
for xi, yi in zip(x, y):
    if yi == my:
        z.append(xi)
    else:
        z.append(0)

关于Python - 基于另一个数组中相应最大值的非唯一值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52917447/

相关文章:

python - Python 中的多参数空合并和内置 "or"函数

python - 如何只保留 pandas DataFrame 中具有多个值的行?

Python 变量在生成器中丢失范围?

python - 如果 Django super 用户不以非交互方式存在,如何创建它?

python - 如何将 2 个 Pandas Dataframes(已旋转)与列上的层次索引合并

python - 使用 python 删除 txt 文件中的重复行(以及一些包含特定字符串的行)的最快方法是什么?

python - 从 for 循环中查找前 9 个数字的平均值,然后查找接下来的 9 个数字,依此类推

python - Django Wagtail Page.objects.descendant_of(inclusive=False) 错误

python - 创建默认值为零 (0) 的 defaultdict

python - 如何在不使用 Tkinter 的情况下捕获 Python 中的 Enter 键