Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2014 16:40:46

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

проверка списка на неотрицательность

Ну так проходите сразу по полю. Зачем в метод filter передаете только второй столбец? Передавайте оба, а фильтруйте только первый. И еще. Тут filter не нужен… Тот код, который Вы привели соответствует коду:

data2 = [one for one in data[:, 1] if one > 0]

Теперь по вопросу. Пример. Дальше додумайте сами.

data = [(1, 2), (-1, 5), (3, 12), (-5, 10)]
data_clear = [one_line for one_line in data if one_line[0] > 0]

Офлайн

#2 Окт. 15, 2014 16:50:33

sshkrv
Зарегистрирован: 2014-10-14
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка списка на неотрицательность

я попробовал вот так

def denoise(rows):
    for i in rows: 
        if i[1] < 0:
         del i
    return rows

кажись, тоже не особо работает
сейчас попробую ваш вариант

Офлайн

#3 Окт. 15, 2014 16:57:39

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

проверка списка на неотрицательность

sshkrv

Вам бы книгу какую-нибудь почитать… Честно. Рано Вы взялись за обработку данных. Сначала желательно разобраться с основами python и синтаксисом.

def denoise(rows):
    for i in rows: # прохожусь по списку и присваиваю последовательно значения из rows переменной i
        if i[1] < 0:
         del i  # удаляю i (это никак не скажется на rows !!!)
    return rows

Отредактировано 4kpt_II (Окт. 15, 2014 16:59:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version