我有一个非唯一数字数组 (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/