Numpy массив - удаление дубликатов - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть набор данных и метки (как 2 отдельных файла CSV). Записи читаются в 2 различных переменных (в виде столбцов). Я хочу объединить их в 2D-массив и удалить дубликаты, но сохранить порядок. Пожалуйста, предложите. Использование «set» или «unique» не сработало.

data = np.loadtxt('raw_data.csv',delimiter=',',usecols=range(0,112),skiprows=0)
label = np.loadtxt('labels.csv',delimiter=',',usecols=range(0,112),skiprows=0)
features1 = data[:,0] ##channel 0
features1 = features1.reshape(-1,1)
labels1 = label[:,0]

1 Ответ

0 голосов
/ 19 ноября 2018

Я полагаю, на этикетках могут быть дубликаты? Вы можете использовать np.unique и возвращать уникальные индексы, а также фильтровать значения данных по ним.

import numpy as np

labels = np.array(['a', 'b', 'c', 'b', 'd', 'c', 'a', 'e'])
vals = np.array([1, 2, 3, 4, 5, 6, 7, 8])

unique, unique_idx = np.unique(labels, return_index=True)
filtered_vals = vals[unique_idx]
combined = np.vstack((unique, filtered_vals))
print combined

выход

[['a' 'b' 'c' 'd' 'e']
 ['1' '2' '3' '5' '8']]
...