首页 > 解决方案 > 获取大型 numpy 数组中星标值的索引

问题描述

我有 12 个 numpy 数组,每个数组包含 1000 个值。一些值周围有一个星号,表示我需要从数组中删除该值。其他人没有,很难检查这些在哪里。下面的代码类似(但较小的示例):

nums1 = np.array([654, 648, 213, *684*, 516, 654, *987*, 321])
nums2 = np.array([68, 89, 36, 879, 78, 213, 89, 79])
nums3 = np.array([432, *87*, 809, 312, 76, *890*, 234, 32])

有什么方法可以测试每一个并获得一个索引数组,以便我可以删除其他数组中的值及其对应的伙伴?这又是一个例子,我的数组要大得多。我的理想输出类似于:

bad_values_nums1 = np.array([3, 6])
bad_values_nums2 = np.array([])
bad_values_nums3 = np.array([1, 5])

标签: pythonarraysnumpy

解决方案


假设您的意思是有一个字符串数组,您可以执行以下操作:

nums1 = np.array(['654','648', '213', '*684*', '516', '654', '*987*', '321'])
bad_values_nums1 = [i for i,v in enumerate(nums1) if v[0] == '*' and v[-1] == '*']

推荐阅读