У меня есть массив имен вместе с соответствующим массивом данных. Из массива имен, есть также меньшее подмножество имен:boolean индексирование из подмножества списка в python
data = np.array([75., 49., 80., 87., 99.])
arr1 = np.array(['Bob', 'Joe', 'Mary', 'Ellen', 'Dick'], dtype='|S5')
arr2 = np.array(['Mary', 'Dick'], dtype='|S5')
Я пытаюсь создать новый массив данных, соответствующих только к именам, которые появляются в arr2. Это то, что я смог придумать в одиночку:
TF = []
for i in arr1:
if i in arr2:
TF.append(True)
else:
TF.append(False)
new_data = data[TF]
Есть ли более эффективный способ сделать это, не вовлекают для цикла? Следует отметить, что сами массивы вводятся из внешнего файла, и на самом деле имеется множество массивов данных, поэтому я ничего не могу поделать.
Похоже, что никто никогда не может найти [набор (http://docs.scipy.org/doc/numpy/reference/routines.set.html) в документах. (Тот факт, что ни одна из отдельных функций не ссылается на их список, а все ссылаются на 'numpy.lib.arraysetopts' и заставляют вас угадать, как их искать, возможно, это не помогает. Но современные документы с навигационной панелью наверху должна была решить эту проблему ...) – abarnert