Я работаю над проектом машинного обучения, в котором данные отсортированы по массивам.Первый столбец - это метка, а второй - словарь объектов и их значений, поскольку в качестве полной матрицы он будет очень разреженным, и имеется значительное количество функций и примеров.
Я обнаружилчто довольно просто получить подмножество строк из моего набора данных, используя:
dataset[dataset[:, 0] == 1]
, и это возвращает пустой массив всех строк, где метка равна 1. Что я хочу сделать, это что-то вродеthis (этот пример не работает):
dataset[2 in dataset[:, 1]]
, где он возвращает пустой массив всех строк, имеющих 2 в качестве ключа в словаре.Еще более полезным был бы способ фильтрации пары ключ-значение (этот текущий набор - все двоичные функции, но у меня есть другие проекты, которые имеют несколько возможностей).
Я использую Python 3.6.Заранее спасибо за вашу помощь!
Вот пример данных, которые я пытаюсь проанализировать:
[1 {10: 1, 12: 1, 15: 1, 18: 1, 31: 1, 36: 1, 48: 1, 59: 1, 70: 1, 79: 1, 90: 1, 100: 1, 125: 1, 140: 1, 163: 1, 185: 1, 200: 1}]
[1 {9: 1, 11: 1, 14: 1, 18: 1, 29: 1, 36: 1, 48: 1, 59: 1, 68: 1, 79: 1, 89: 1, 103: 1, 120: 1, 143: 1, 160: 1, 180: 1, 200: 1}]
[-1 {10: 1, 11: 1, 14: 1, 18: 1, 29: 1, 35: 1, 46: 1, 57: 1, 68: 1, 79: 1, 90: 1, 104: 1, 124: 1, 143: 1, 163: 1, 183: 1, 203: 1}]
[1 {9: 1, 11: 1, 14: 1, 18: 1, 30: 1, 35: 1, 46: 1, 57: 1, 68: 1, 79: 1, 90: 1, 103: 1, 123: 1, 143: 1, 163: 1, 183: 1, 204: 1}]
[-1 {10: 1, 12: 1, 14: 1, 18: 1, 33: 1, 36: 1, 45: 1, 56: 1, 67: 1, 78: 1, 89: 1, 100: 1, 120: 1, 140: 1, 160: 1, 193: 1, 203: 1}]
Первое предложение сработало отлично, но потом я понял, что я также вырезаюстроки, которые не имеют функции, но кроме супер медленной функции, которая получает индексы добавленных строк, а затем добавляет другие в другой набор, я не могу заставить его работать.Когда я пытаюсь что-то вроде:
helper2 = np.vectorize(not dict.__contains__)
, он говорит, что «объект bool не может быть вызван».