Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 13, 2011 14:13:20

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

свертка

Rodegast
Встроенная функция reduce
Интересно было бы взглянуть на ваше решение данной задачки с использованием ‘встроенной функции reduce’



Офлайн

#2 Окт. 17, 2011 13:10:01

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

свертка

да, я книгу читаю по питону, но так как я сразу хочу решать насущные вещи, то соответственно и пишу на форум. спасибо всем кто подсказал, ваши высказывания привнесли понимание по некоторым вопросам.
вообще свертка как раз нужна, которая описана здесь http://www.dsplib.ru/content/conv/conv.html
в общем я разобрался, и решение оказалось куда ближе - в википедии есть код на С++, который работает как надо и соответственно для питона его переписать не проблема.



Офлайн

#3 Окт. 17, 2011 21:37:55

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

свертка

eiyawii
ошибка - нет модуля с таким именем, а если пишу в текстовом редакторе и запускаю, то всё работает, в чем дело?
У меня импортируется там и там. Обратите внимание на то какой питон запускается, может у вас их 2 разных - это помоему наиболее вероятная причина.



Офлайн

#4 Окт. 18, 2011 09:02:47

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

свертка

doza_and
eiyawii
ошибка - нет модуля с таким именем, а если пишу в текстовом редакторе и запускаю, то всё работает, в чем дело?
У меня импортируется там и там. Обратите внимание на то какой питон запускается, может у вас их 2 разных - это помоему наиболее вероятная причина.
да, совершенно верно. у меня были установлены питоны х86 и х64 в одну папку, отсюда и возникли проблемы.



Офлайн

#5 Окт. 18, 2011 09:48:39

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

свертка

чтобы не создавать новую тему, подскажите, как при чтении из файла брать символы, которые находятся между двумя определенными другими символами, например если строка содержит “re:=4to-to;”, то надо взять “4to-to”(т.е. то, что находится иежду “=” и “;”) из этой строки и добавить в список.



Офлайн

#6 Окт. 18, 2011 10:58:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

свертка

первое что приходит в голову

import re
s="re:=4to-to;"
re.search("=(.+);",s).group(1)



Офлайн

#7 Окт. 18, 2011 14:14:39

eiyawii
От:
Зарегистрирован: 2011-08-04
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

свертка

хм, да вот только что в лутце прочитал про модуль re, но попробовал таким образом написать - не получается. если в строке попадаются подобные выражения, то возвращается 4to-to а потом остальные элементы

import re
s="re:=4to-to; djf:=565666;"
s=re.search("=(.+);",s).group(1)
print s
что означает второй аргумент у функции search? 1ый - шаблон по которому происходит поиск, а второй строку/файл в которой/ом происходит поиск?



Офлайн

#8 Окт. 18, 2011 21:58:28

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

свертка

Второй аргумент строка в которой идет поиск. Можно специфицировать точнее что ищите.

re.search("=([^=]+);",s).group(1)[/code]
Теперь это строка без знаков '='
Если захотите обрабатывать вложенные равенства типа "a=b=c=4-5" что в c++ вполне возможно, то тогда проще сделать нормальный парсер - pyparsing или coco/R.



Офлайн

#9 Окт. 20, 2011 07:38:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9966
Репутация: +  856  -
Профиль   Отправить e-mail  

свертка

eiyawii
то возвращается 4to-to а потом остальные элементы
"=(.+?);"
берёт минимальное совпадение



Отредактировано (Окт. 20, 2011 07:40:15)

Офлайн

#10 Окт. 20, 2011 08:06:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

свертка

кстати - поребности бывают разные но:
свертка называется convolve

например есть numpy.convolve я поверхностно глянул - она незамысловатая вроде - трудоемкость линейно растет с длинной шаблона(ядра преобразования).



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version