WedX - журнал о программировании и компьютерных науках

Скользящее окно, которое увеличивается

Я хочу получить скользящее окно, которое не «скользит», а просто увеличивается, например, если ширина равна 1 для последовательности «ATCGATCGA». Я хочу получить это: (A) (A, T) (A, T, C) ( А,Т,С,Г)(А,Т,С,Г,А)(А,Т,С,Г,А,Т)(А,Т,С,Г,А,Т,С)(А, Т,С,Г,А,Т,С,Г)(А,Т,С,Г,А,Т,С,Г,А)

В идеале я хочу, чтобы он начал скользить с 9, поэтому в коде, над которым я работал, n=1+8+i. Я полагал, что перечисление скольжения будет добавляться каждый раз и, следовательно, увеличиваться, но возникает ошибка ниже

Попытка кода:

def Slide_merge (seq):
    n=1+8+i
    it= iter(seq)
    for i, in enumerate(list(islice(it, n))):
        print it
        print n

Сообщение об ошибке:

<ipython-input-1-80c92e1a3f14> in Slide_merge(seq)
      1 import itertools
      2 def Slide_merge (seq):
----> 3     n=1+8+i
      4     it= iter(seq)
      5     for i, in enumerate(list(islice(it, n))):

UnboundLocalError: local variable 'i' referenced before assignment

  • Код, который вы разместили, и код, показанный в сообщении об ошибке, отличаются. 21.05.2014
  • Я не думаю, что последний фрагмент кода действительно имеет отношение к ошибке, но первый фрагмент действительно вызывает описанную ошибку. 21.05.2014
  • @ 200 Хорошо, это потому, что я продолжал редактировать его, а теперь вернул его к оригиналу, чтобы они совпадали. 21.05.2014
  • @logc Я удалил последний код, не был уверен, что он актуален или нет, поэтому мог его добавить. 21.05.2014
  • @Tom Погуглите сообщение об ошибке, его спрашивали миллион раз. 21.05.2014
  • @200 Хорошо, я понимаю, что об ошибке задавали столько раз, и я понимаю проблему. Проблема в том, что я новичок в python и поэтому не знаю другого метода создания расширяющегося скользящего окна. 21.05.2014

Ответы:


1

Как насчет того, чтобы нарезать последовательность самостоятельно?

In [12]: def slide_merge(seq):
   ....:     for i in range(1, len(seq)):
   ....:         print seq[0:i]
   ....:

In [13]: slide_merge('ATCGATCGA')
A
AT
ATC
ATCG
ATCGA
ATCGAT
ATCGATC
ATCGATCG
21.05.2014
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]