首页 > 解决方案 > 在数组中查找元组并获取其索引和值

问题描述

我有一个这样的数组

np.array([[(115, 1), 47],
       [(115, 2), 1],
       [(115, 3), 3],
       [(2147482888, 5), 26],
       [(275030867, 5), 3]], dtype=object)

我如何获得所需的元组说 (11​​5, 1) 并获得其对应的值 47 并根据某些条件通过加法或减法对其进行更新。

假设我想获得 (115, 1) 并将 2 添加到其值 47 + 2 如果数组包含 (115, 1)

如果数组不包含 (10009, 10) 则将其添加到数组中,默认值为 10

谢谢

标签: numpytuplesnumpy-ndarray

解决方案


数组最适合用于连续的同质数据块(例如 n 浮点数组)。听起来你想要一个键值对的字典。在这种情况下,您可以执行以下操作:

# original data
x = np.array([[(115, 1), 47],
       [(115, 2), 1],
       [(115, 3), 3],
       [(2147482888, 5), 26],
       [(275030867, 5), 3],
       [0, 0]], dtype=object)

d = dict(x)
d[(115,1)] += 2

输出:

{(115, 1): 49,
 (115, 2): 1,
 (115, 3): 3,
 (2147482888, 5): 26,
 (275030867, 5): 3,
 0: 0}

推荐阅读