Доктор физико-математических наук Андрей Грозин прочитал цикл лекций об использовании Python. Презентации были приготовлены для представления в среде Jupiter (http://jupyter.org/). Видеоматериалы лекций с разрешения лектора доступны (https://www.youtube.com/playlist?list=PLPFUq1zn8x34Bx6CWXJyT...) под свободной лицензией CC-BY-SA. Исходные видеофайлы будут выложены в торрентах позже. Лекционные материалы в формате HTML и примеры опубликованы на странице лектора (http://www.inp.nsk.su/~grozin/python/).Первая и третья лекция записаны не были. Первые четыре лекции представляют из себя введение в язык программирования Python. Следующие пять лекция — обзор возможностей Python, которые смогут пригодится в процессе занятия наукой.
- Лекция 1. Jupiter. Числа. Строки. Списки. (html (http://www.inp.nsk.su/~grozin/python/python1.html), ipynb (http://www.inp.nsk.su/~grozin/python/python1.ipynb))
- Лекция 2. Кортежи. Множества. Словари. Функции.(html (http://www.inp.nsk.su/~grozin/python/python2.html), YouTube (https://youtu.be/hpiDPez_wuE), ipynb (http://www.inp.nsk.su/~grozin/python/python2.ipynb))
- Лекция 3. Объектно-ориентированное программирование. Исключения. (html (http://www.inp.nsk.su/~grozin/python/python3.html), ipynb (http://www.inp.nsk.su/~grozin/python/python3.ipynb))
- Лекция 4. Модули. Ввод-вывод, файлы, директории. (html (http://www.inp.nsk.su/~grozin/python/python4.html), YouTube (https://youtu.be/XntBAdmN_mw), ipynb (http://www.inp.nsk.su/~grozin/python/python4.ipynb))
- Лекция 5.
numpy
. Одномерные массивы. Операции над одномерными массивами. 2-мерные массивы. Линейная алгебра. Преобразование Фурье. Интегрирование. Дифференциальные уравнения.(html (http://www.inp.nsk.su/~grozin/python/python5.html), YouTube (https://youtu.be/aRwZGR4PA2w), ipynb (http://www.inp.nsk.su/~grozin/python/python5.ipynb))
- Лекция 6.
matplotlib
. Логарифмический масштаб. Полярные координаты. Экпериментальные данные. Гистограмма. Контурные графики. Images (пиксельные картинки). Трёхмерная линия. Поверхности. (html (http://www.inp.nsk.su/~grozin/python/python6.html), YouTube (https://youtu.be/_LZqiJyjywA), ipynb (http://www.inp.nsk.su/~grozin/python/python6.ipynb))
- Лекция 7.
SymPy
(html (http://www.inp.nsk.su/~grozin/python/sympy.html), ipynb (http://www.inp.nsk.su/~grozin/python/sympy.ipynb)). Многочлены и рациональные функции. Элементарные функции. Структура выражений. Решение уравнений. Ряды. Производные. Интегралы. Суммирование рядов. Пределы. Дифференциальные уравнения. Линейная алгебра. Собственные значения и векторы. Нормальная жорданова форма. Графики. (html (http://www.inp.nsk.su/~grozin/python/python7.html), YouTube (https://youtu.be/3wlt17m6kic), ipynb (http://www.inp.nsk.su/~grozin/python/python7.ipynb))
- Лекция 8.
iminuit
(html (http://www.inp.nsk.su/~grozin/python/minuit.html), ipynb (http://www.inp.nsk.su/~grozin/python/minuit.ipynb)).
cython
. Функции. Интерфейс к библиотеке на C. Структуры. cdef классы. Интерфейс к библиотеке на C. (html (http://www.inp.nsk.su/~grozin/python/python8.html), YouTube (https://youtu.be/_-jBgIJc5VU), ipynb (http://www.inp.nsk.su/~grozin/python/python8.ipynb))
- Лекция 9. Интерфейс к библиотеке на C (продолжение).
pandas
(html (http://www.inp.nsk.su/~grozin/python/pandas.html), ipynb (http://www.inp.nsk.su/~grozin/python/pandas.ipynb)) — пакет для статистической обработки данных. Series. DataFrame.
sh
— простой вызов shell-комманд.
rpyc
— remote python call. pyroot (https://root.cern.ch/pyroot) — интерфейс к пакету анализа данных в том числе и данных очень большого объёма ROOT (http://root.cern.ch). (YouTube (https://youtu.be/mWK7EeYZwjY))
URL: https://www.youtube.com/playlist?list=PLPFUq1zn8x34Bx6CWXJyT...
Новость: http://www.opennet.me/opennews/art.shtml?num=43594
Тыкнул в первое попавшееся видео и наугад выбрал смещение по времени:
"ммм-уууу", "если вам эта пустая штука не нравится, то...", "э-э-э-э"
Отвык я от лекторов. Лично я такое слушать не могу. Вроде и правильные вещи говорит, но душа требует диктора.
Да, голос отвратительный. Слушать такие лекции не возможно.
В чём проблема? -- переозвучь. Лицензия это позволяет, материалы доступны.
>переозвучьЗачем мне это? Мне это не нужно.
Как это не нужно? А кто тут про голос лектора жаловался? Или это из серии «Зелен виноград»?
Зачем мне что-то переозвучивать? Я просто пройду мимо.
Слушай, я прекрасно понимаю, что ты старался, снимал, перекодировал, возможно что-то где-то ещё как-то делал. Да, это большой объём работы. Но тот факт, что ты поработал и устал не означает, что все должны тебя хвалить и всячески отказываться от критики.
Твои чувства меня не беспокоят совершенно. Я лишь предупредил других людей о том, с чем они столкнутся.
Да чё ты возбудился то? Я же даже не обозвал тебя [s]земляным червяком[/s] потребителем, которому все должны... Ты на сайте про open source или где? Лицензия позволяет: не нравится -- улучши. Это и есть основная идея.
>не нравится -- улучши.Знаешь ты этой фразой, точнее её посылом в данном контексте, напомнил мне одного персонажа по имени Jedi-to-be, который вот точно такой же посыл часто использует в своих комментариях в духе - присоединяйтесь к разработке ReactOS, но никто почему-то не присоединяется, а причина в том что это просто нафиг никому не нужно, а вовсе не в лени и не в "неумении участвовать".
> Ты на сайте про open source или где? Лицензия позволяет: не нравится -- улучши. Это и есть основная идея.Основная идея здесь другая - сообщество OS это не поймойка куда нужно тащить всякое ненужное дерьмо. Эти лекции существенно лучше не станут как их не переозвучивай.
То есть есть претензии к лекциям? Хочешь сказать есть лучше? Хотелось бы иметь список -- чисто для себя. Честно-честно.
> То есть есть претензии к лекциям? Хочешь сказать есть лучше?Думаю, осмысленные багрепорты по лекциям как таковым и записи/обработке лучше попробовать стрясти с Жени Сыромятникова, Стаса Фомина или Гоши Курячего.
> Думаю, осмысленные багрепорты по лекциям как таковым и записи/обработке лучше попробовать
> стрясти с Жени Сыромятникова, Стаса Фомина или Гоши Курячего.К сожалению никого из них не знаю, но безусловно любые рекомендации и замечания по существу дела будут приняты с благодарностью.
Правда запись и обработку в обозримом будущем вряд ли можно кардинально улучшить. Единственная альтернатива -- это поручить её профессионалам за деньги, как это было сделано вот тут: https://www.youtube.com/playlist?list=PLPFUq1zn8x34-ZwZgNI1q...
>...Гоши Курячего...Кажись догадался - это тот актер, который в сериале играет какое-то быдло. Студенты рассказывали; правильную фамилию - не назову, бо пофиг и хоть на языке вертелось - уже сплюнул.
> Кажись догадалсяУж не знаю, чем Вас злой майор потчевал, но вообще-то http://uneex.ru/FrBrGeorge
>> Кажись догадался
> Уж не знаю, чем Вас злой майор потчевал, но вообще-то http://uneex.ru/FrBrGeorgeТьфу-ты. А я чтой-то на Вас плохо подумал :). Извиняюсь.
> Тьфу-ты. А я чтой-то на Вас плохо подумал :)Бывает... тоже порой людей переспрашиваю.
>>Твои чувства меня не беспокоят совершенно. Я лишь предупредил других людей о том, с чем они столкнутся.Ровно как и твоё предупреждение.
Ровно или равно?
Гр-р-р... Хочешь оскорбить? Так хоть делай это грамотно. А то на попискивания шестиклассника как-то и обижаться не получается.
https://ru.wiktionary.org/wiki/%D1%80%D0%...Фразеологизмы и устойчивые сочетания
пс: прошу прощения, если сочли за оскорбление, ничего личного.
Ну? В твоём случае нужно писать "равно как " от слова "равенство" и в смысле "точно так же"
>>переозвучь
> Зачем мне это? Мне это не нужно.Говорю же: потребитель. "He's a user" (c) Gary Kildall
PS: ...и тут увидел #10 -- кому-то же надо сказать, а если не дошло на днях -- повторить.
Что бы ни делал русский преподаватель (напр. писал учебник или снимал видеолекции), в большинстве случаев получается либо история в духе "как я провёл лето в деревне", где на страницу учебника будет всего 1-2 предложения по теме, либо "Война и мир" Толстого.А с западными и переводными учебниками всё скучно: берёшь книгу, тебя на первых же страницах предупреждают, что нужно знать для прочтения и в каком объёме, выполняешь упражнения -- и, что совсем странно, получаешь результат.
Тому, кто в упор не видит разницы между этими 2мя стилями изложения материала (как тов.Evguenii), можно только посочувствовать. Но объяснять уже бестолку.
А еще у западных учебников корочки хрустят приятнее, а странички пахнут свободой.
Ну и сделал бы лучше. Показал бы класс нам сирым и убогим. Лицензия позволяет. Толстый такой намёк.
кто что думает о Julia-lang?
Не очень понятно зачем она.
Не взлетело.
Серьезные компании используют Torch7, для всех остальных R никуда не делся.
Ну и Python для кто не совладал ни с тем ни с другим.
О, из названия лекций понял, что python - "Интерфейс к библиотекам на C"
>python - "Интерфейс к библиотекам на C"Ага, путонисты те ещё любители доказывать что Python идеально подходит для научных вычислений в качестве обвязки для таких языков как FORTRAN, C, C++, которые разумеется по мнению путонистов сами по себе настолько сложны, что безмозглым учёным ну просто никак не обойтись без дополнительного языка Python в качестве обвязки.
С++ реально сложен и по большому счёту как бы и не нужен. И да, python, реально используется как клей для C++-библиотек в том же CERN вполне себе повсеместно.
>С++ реально сложен и по большому счёту как бы и не нужен.И чем это он сложен? Это интерпретируемость не нужна в языке для расчётов.
>И да, python, реально используется как клей для C++-библиотек в том же CERN вполне себе повсеместно.
Так он используется не от того что он хорош, а просто кто-то крайне заинтересован в его продвижении и навязывает повсеместно этот язык.
Хоре понтоваться. Или ты думаешь, что любой пользователь пк сможет освоить си на базовом уровне за 2 часа?
Питон простой (возможно, самый простой) и позволяет реашать широкий круг задач для самых разных людей. Отсюда и популярность.
Я вон накогдаовал на питоне, что мне было нужно. быть может, мне больше кодить и не понадрбиться никогда. Зачем выбирать более сложные языки?
>Питон простойЧудесным образом язык позволяет делать то же что и на C++ (правда работает сделанное в 10, или в 100, или в 1000 раз медленнее) и при этом он элементарный, а C++ сложный. Вы не находите тут логического противоречия?
>Отсюда и популярность.
Какая ещё популярность? Да это один из маргинальных языков, популярный он только в пиар-новостях о Python на opennet.ru.
>>Питон простойПростота простоте рознь.
> Какая ещё популярность? Да это один из маргинальных языков,
> популярный он только в пиар-новостях о Python на opennet.ru.При всей моей давней к питону неприязни -- это вопиющая ложь.
Какой процент составляет код на Python от кода на C/C++ во всех пакетах Alt Linux? Вот и подтверждение маргинальности этого "не нужно".
> Какой процент составляет код на Python от кода на C/C++ во всех пакетах Alt Linux?Закажите исследование у Black Duck, или проведите сами, мне со sloccount возиться неохота даже без коэффициентов плотности кода.
> Вот и подтверждение маргинальности этого "не нужно".
А вот по количеству пакетов запрос элементарен и быстр:
$ ls Sisyphus/files/SRPMS/python* | wc -l20% пакетов дистрибутива -- это, как ни крути, не маргинальность.
3819
$ ls Sisyphus/files/SRPMS/ | wc -l
18395
$ echo "100*3819/18395" | bc
20Повторюсь, меня крайне сложно назвать любителем питона. Просто врать не надо.
>20% пакетов дистрибутива -- это, как ни крути, не маргинальность.Ой не смешите меня, у Python просто очень высокая модульность пакетов не понятной уместности (у Perl кстати та же история), да ещё скриптовые почти helloworld-ы, мерить надо строками кода, а не числом пакетов.
>>20% пакетов дистрибутива -- это, как ни крути, не маргинальность.
> Ой не смешите меня, у Python просто очень высокая модульность пакетовЕсли бы Вы хоть одним глазом потрудились глянуть, то скорее кивали бы на ненулевую степень дублирования python3* (коих сейчас там 95 штук).
> да ещё скриптовые почти helloworld-ы
Просто к сведению: в посчитанные не-^python.*$ входит в т.ч. конкретно hello-2.10-alt1.1.src.rpm, который не "почти", а официально hello world.
> мерить надо строками кода, а не числом пакетов.
Totals grouped by language (dominant language first):Это sloccount --addlang makefile по вышеозначенному сишному пакету, функционально эквивалентному однострочнику на шелле (в src/ там 123 строки кода).
ansic: 11081 (63.19%)
sh: 6438 (36.72%)
sed: 16 (0.09%)Вы поймите, я не зря там про коэффициенты сразу написал -- не будете же, надеюсь, предлагать ассемблер с сями по строкам сравнивать?
А мерить, как по мне, стоит решаемыми задачами. Только вот метрика эта непростая зело.
Строками кодами тоже получится ерунда. Любой ассемблер уделает всех.
IMHO, чем мощнее язык тем менее он болтлив.
> И чем это он сложен?Сложен тем, что на нём нельзя писать не думая об особенностях языка, сосредоточившись только на алгоритме, и при этом не отстрелив себе обе ноги.
Читайте любой блог по статической проверке исходников на C++ как доказательство вышесказанного.
>Сложен тем, что на нём нельзя писать не думая об особенностях языка, сосредоточившись только на алгоритме, и при этом не отстрелив себе обе ноги.Типичная софистика от адептов Python.
Сходи лучше указатели поразыменовывай. А то опять пропустил небось половину в последний раз.
Невозможно пропустить разименование указателя, это будет синтаксически не верно.
>> С++ реально сложен и по большому счёту как бы и не нужен.
> И чем это он сложен? Это интерпретируемость не нужна в языке для расчётов.Не угадал, анонюша, интерпретируемость нужна.
Или ты предлагаешь учёным конпилировать каждый вычислительный пример? Настраивать канпиляторы на каждом компе и составлять make-файлы для каждого примера? Ты когда-нибудь пробовал объяснить это человеку, не желающему изучать всевозможные Cи-извращения и канпиляции?
Интепретатор же Python просто копируется с компа на комп в виде папки и сразу готов запускать .py-программы.
>Или ты предлагаешь учёным конпилировать каждый вычислительный пример?Что за "примеры" такие? Да, исполняемый файл можно получить только выполнив компиляцию исходных файлов программы.
>Настраивать канпиляторы на каждом компе и составлять make-файлы для каждого примера?
Компилятор не требует настройки, make-файлы для любой ОС удобнее генерировать из одного общего для всех ОС cmake-файла.
>Ты когда-нибудь пробовал объяснить это человеку, не желающему изучать всевозможные Cи-извращения и канпиляции?
О каких-таких Си-извращениях речь, что-то не пойму? Стандартный процесс компиляции на любой ОС:
mkdir build && cd build
cmake ..
make -j6>Интепретатор же Python просто копируется с компа на комп в виде папки и сразу готов запускать .py-программы.
О да, вы видимо только и делаете что бегаете между компьютерами с флешкой с папкой с Python. Вы удивитесь, но GCC между Windows машинами точно также копируется с компа на комп в виде папки и сразу готов компилировать исходники. На Linux же входит в поставку дистрибутивов.
Помимо всего прочего весьма немаловажной деталью в вычислениях является скорость счёта.
> Вы удивитесь, но GCC между Windows машинами точно также копируется с компа на комп в виде папкиА в виде мамки видимо идет особая магия, настраивающая переменные окружения типа PATH и т.д.? o_O
> и сразу готов компилировать исходники.
Ну да, остальные-то все лохи и поэтому извращаются с cygwin и msys ...
Мусье компилировал что-то сложнее привета миру? Ну, типа, гтк?
>настраивающая переменные окружения типа PATH и т.д.?Для это этого можно просто bat файл запускать, ну или вообще запускать из папки с exe-шниками.
>Мусье компилировал что-то сложнее привета миру? Ну, типа, гтк?
А вы не заметили что речь о вычислениях идёт, а о не о сборке GUI, тем более GTK+ не лучший выбор за пределами Linux.
>>Мусье компилировал что-то сложнее привета миру? Ну, типа, гтк?
> А вы не заметили что речь о вычислениях идёт, а о не о сборке GUIСборка GUI - сложнее сборки лапши из вычислительных библиотек, натасканых
отовсюду, начиная с фекалий мамонта^W^Wnetlib?! Мусью, вы натурально
ничего не понимаете.
> Для это этого можно просто bat файл запускать,Ага, а в теории можно в переделанном холодильнике на луну или на марс слетать.
А на практике вы запаритесь писать батник под это дело. Особенно, если есть куча зависимостей и используются утилиты помимо самого гцц.
Повторяю: народ пилит msys и cygwin отнюдь не из-за природной лошарности.> ну или вообще запускать
> из папки с exe-шниками.Т.е. вы считаете, что достаточно сделать CWD на бинарники и можно компилять методой "gcc foo\bar.c"?
Понятно.
>>Или ты предлагаешь учёным конпилировать каждый вычислительный пример?
> Что за "примеры" такие?Может не надо лезть тогда с умными мыслЯми, если понятия не
имеешь о задачах, которые люди решают?> make-файлы для любой ОС удобнее генерировать из одного общего для всех ОС cmake-файла.
Удобней кому? Лично мне, уверяю, удобнее вообще избавиться от ваших
make-файлов. Генерируете вы их из одного шаблона или пишете вручную - мне
без разницы.Но если ты настаиваешь на необходимости подобных ритуалов - иди объясняй
про это создателям Maple, Mathematica и Matlab. Как их убедишь - приходи
учить сюда.>>Ты когда-нибудь пробовал объяснить это человеку, не желающему изучать всевозможные Cи-извращения и канпиляции?
> О каких-таких Си-извращениях речь, что-то не пойму?В 99% - никому в XXI веке не интересно заниматься онанизмом с
ручным управлением памятью. Это только мааленький пример.>>Интепретатор же Python просто копируется с компа на комп в виде папки и сразу готов запускать .py-программы.
> О да, вы видимо только и делаете что бегаете между компьютерами с
> флешкой с папкой с Python.Школьник не знает про сеть Интернет? Да, детка, существуют более современные
средства обмена файлами, чем бегание с флешкой.> Помимо всего прочего весьма немаловажной деталью в вычислениях является скорость счёта.
Для этого есть numpy. А если мало - люди потом сгенерируют исходный код на C. Только не
руками, как мартышки, а на Python.
>Может не надо лезть тогда с умными мыслЯми, если понятия неимеешь о задачах, которые люди решают?
Эти бы слова да вам самому в уши, я уже понял что ваш юзкейс - это что-то считающееся пару десятков секунд, в таком случае выигрыш в скорости счёта от компилируемого языка неважен, но в мире есть и другие юзкейсы и в этих юзкейсах выигрыш этот очень существенен.
>Школьник не знает про сеть Интернет? Да, детка, существуют более современные
средства обмена файлами, чем бегание с флешкой.
Опять вы про школьников, ну сколько можно? Вас что одноклассники в школе били или до сих пор бьют, что вы их так не любите?
>>Может не надо лезть тогда с умными мыслЯми, если понятия не имеешь о задачах, которые люди решают?
> Эти бы слова да вам самому в уши, я уже понял что
> ваш юзкейс - это что-то считающееся пару десятков секундНе угадал.
> в таком случае выигрыш в скорости счёта от компилируемого языка неважен
В этом, как и во многих других тоже.
Прототипирование, о котором школьнику пытались рассказать выше - как раз
пример подобной задачи. Странно, мягко говоря, сразу жертвовать удобством
разработки ради "выигрыша" разве что в разы.> Опять вы про школьников, ну сколько можно?
Столько, сколько нужно. Ведите себя умнее - никто вас школьником не назовет.
> Помимо всего прочего весьма немаловажной деталью в вычислениях является скорость счёта.Неприятно Вам оппонировать (поскольку во многом правы), но в отстаивании компилируемых языков в целом и C в частности всё-таки перегибаете палку.
Тут лучше не напором пытаться взять, а подсказать -- если человеку окажется полезно, то и будет благодарен. А если ему обычно пару строк поправить в данных или параметрах и перезапустить обёртку над собственно считалками -- то лишний шмяк тут вызовет скорее лишнее раздражение.
Ну как бы да, сложен. Достаточно сравнить какой-нибудь(fold + 0 '(1 2 3 4 5 6 7 8))
и
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
int s = 0;
for (int i = 0; i < sizeof(nums) / sizeof(nums[0]), i++)
s += nums[i];
Хрень несёшь. Питоновские морды там для чайников и всяких хеллоу ворлдов, ёмкие вычисления пишут на С/C++.
> Хрень несёшь. Питоновские морды там для чайников и всяких хеллоу ворлдов, ёмкие
> вычисления пишут на С/C++.Я как бы в курсе как оно на самом деле. Так вот ещё раз: вычалгоритмы пишутся на C++, а склеиваются и запускается сам процесс реконструкции и анализа с помощью Python. Довольно удобно.
> С++ реально сложен и по большому счёту как бы и не нужен.
> И да, python, реально используется как клей для C++-библиотек в том
> же CERN вполне себе повсеместно.Ну дык и вычисляли бы все на php или перле, чо нет то?
> php
> чо нет то?Это ТО самое НЕЧТО, которое парси(ло) "08" как "0" и у которого 0x0+2 было равно 4?
Да и
> If PHP encounters a number beyond the bounds of the integer type, it will be interpreted as a float instead.
> Also, an operation which results in a number beyond the bounds of the integer type will return a float
> instead.как бы, намекают на непригодность ваших пыхпыхов для вычислений ...
php не пригоден для работы в поле, то есть в шеле (shell), а perl к сожалению сошёл с дистанции, надеюсь чтобы отдохнуть.
> а perl к сожалению сошёл с дистанции, надеюсь чтобы отдохнуть.Подумалось почему-то:
"""Народы, не знающие perl вынуждены его повторить.
//И да, сам не осилил.
> C, C++, которые разумеется по мнению путонистов сами по себе настолько сложныНу, давайте сюда код, который посчитает что-то типа:
bpython version 0.14.2 on top of Python 2.7.11 /usr/local/bin/python2.7
>>> from fractions import Fraction as fr
>>> 2 ** 133729998822114296304858836503028773905513747758968967880788683255718912187140079535585050413
88044334470201821965796391409921668122818083570668568660678895962925314655342154580738160
35764104743037391715672186116745874943494059101730649588018080539118538030742753976108019
32131115347093782346702142848581438243841280773738718820337791668215583344663229088731710
79631967672353755842618738501413251304204009472L
>>> fr('1/3') + fr('1/3') + fr('1/3')Fraction(1, 1)
>>> fr('9/7') - fr('20/21')Fraction(1, 3)
>>>
Это если довольствоваться батарейками "из коробки".
2*x + 2*y x*y**3 - 3*x*y**2 + 3*x*y - x + y**3 - 3*y**2 + 3*y - 1 -sin(x)*sin(y) + cos(x)*cos(y) x*y + 1 [-sqrt(y), sqrt(y)] [I*pi]>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> x + x + y*3 -y
>>> expand((x+1)*(y-1)**3)
>>> expand(cos(x+y), trig=True)
>>> simplify((x+x*x*y)/x)
>>> solve(x**2 - y, x)
>>> solve(exp(x)+1, x)
> ну просто никак не обойтись без дополнительного языка Python в качестве обвязки.
Во-во. Я тоже не понимаю, зачем народ покупает готовые молотки и микроскопы, когда все исходные материалы под ногами валяются!
Чем сложен С++? Ты шутишь? Ты толщину Страуструпа измерял? И да, расчёты бывают совершенно разной длительности. Долгая часть запихивается в С/C++/Fortran-библиотеки, а python -- это интерфейс и клей. Я не хотелки свои рассказываю, а то, как это реально сейчас делается.
>как это реально сейчас делаетсяЭто делается теми кто продвигает Python, всё прекрасно и без "клея" работает, это просто ненужное звено.
Нет, это делается теми, кто реально занимается анализом данных с Большого адронного коллайдера и не только. Таково состояние дел на данный момент.
>Нет, это делается теми, кто реально занимается анализом данных с Большого адронного коллайдера и не только.По твоему тот факт что люди работают с данными с адронного коллайдера как-то свидетельствует об их скилле в численных вычислениях, да чему их научили (или чему самообучились) в своё время то и используют, эффективность языка для данной области применения тут вообще не при чём.
Этот факт свидетельствует о том, как это реально работает в реально сложных проектах, где совместно участвуют тысячи людей. И да, вопрос не в эффективности языка -- вопрос в в том, чтобы предметная задача решалась, что и делается вполне себе с успехом. И это отнюдь не единственный пример.
> Ты толщину Страуструпа измерял?Он же старый уже, тощий. Наверняка будет не толще тебя.
для математических вычислений надо изучать язык программирования - да это ерунда какая то, берите Matlab, Mathematica, Maple.
Во первых наука это не только математические вычисления, далеко не только, во вторых есть масса других специализированных весьма удобных и вполне себе свободных инструментов, предназначенных для решения вполне себе предметных задач. Python -- просто один из них, который широко используется в научном мире. Экспериментальный факт.
> Python -- просто один из них, который широко используется в научном миреглавное что бы не Breinfuck
Пошутить попытался? Сочувствую.
Matlab, Mathematica, Maple - это тоже "языки программирования", дарагой
друк. До кучи - еще и пропиетарные...
Опубликуйте *.ipynb на http://nbviewer.ipython.org/А то html без картинок и графиков порой... Напр. http://www.inp.nsk.su/~grozin/python/python7.html
> Опубликуйте *.ipynb на http://nbviewer.ipython.org/
> А то html без картинок и графиков порой... Напр. http://www.inp.nsk.su/~grozin/python/python7.htmlЯ передам Андрею. Материалы будут улучшаться.
Да, если я правильно помню, то там, где не было графики, они открывались в отдельном окне.
> Да, если я правильно помню, то там, где не было графики, они
> открывались в отдельном окне.%matplotlib inline
Интересно было бы мнение Грозина про SymPy (в сравнении с аналогами). Там есть
что-то подобное, или только маленький ликбез по использованию пакетом?2) где Sage?!
> Интересно было бы мнение Грозина про SymPy (в сравнении с аналогами).
> Там есть
> что-то подобное, или только маленький ликбез по использованию пакетом?Там только обзор. Андрей Грозин для работы использует Mathematica -- он издал книжку по этой теме:
http://www.amazon.com/Introduction-Mathematica%C2%...> 2) где Sage?!
Я знаю, что он серьёзно разбирался с maxima и axiom -- с его помощью прикручивался интерфейс к texmacs. Про Sage они никогда ничего не говорил.
> Там только обзор."Я слыхал" (ц) что он много с чем из открытых CAS разбирался, в т.ч. с
reduce (собственно, maxima+axiom+reduce - и есть *все*).Жаль, ругань была бы действительно интересна.
> Про Sage они никогда ничего не говорил.
Не знаю кто чего говорил, но странно что Sage как-то совсем пропустили в
лекциях "Python в научных вычислениях". Жаль, Sage делают малость поболее
образованные люди, чем индусские студенты SymPy...
Да, reduce -- выпустил. Он появился настолько давно, что его сейчас все как-то подзабыли даже.Это всё-таки была лекция на тему Python -- если его сравнивать со всем, что имеется, то это займёт больше времени, чем было. А по поводу Sage: в нашей окрестности как-то никто не использует его совсем, так что даже спросить не у кого как оно.
> Это всё-таки была лекция на тему Python -- если его сравнивать со
> всем, что имеется, то это займёт больше времени, чем было.Ну с этим понятно. Не понятно только почему Sage забыли - это
все-таки Python.> А по поводу Sage: в нашей окрестности как-то никто не использует его
> совсем, так что даже спросить не у кого как оно.У математиков не пробовали?
Sage - это Python в той самой роли клея, как оно есть. Он комбинирует, например,
все вышеизложенные пакеты Python, добавляет интерфейсы к сторонним приложениям
вродо maxima, pari, gap.
Надо будет палочкой потыкать. Как-нибудь, когда-нибудь... Посмотрим. Мне, в моей основной деятельности, кроме root по большому счёту ничего и не нужно, хотя я не в восторге от этого инструмента.
>> Про Sage они никогда ничего не говорил.
> Не знаю кто чего говорил, но странно что Sage как-то совсем пропустили
> в лекциях "Python в научных вычислениях".Вот и помогли бы Евгению с коллегами заместо лишнего флуда (у меня, например, на комментарии времени нет, когда делаю что-либо действительно нужное). Не подковырка.
PS: кстати, тоже можно на переславльской конференции обсудить, заодно и познакомиться живьём интересантам.
>>> Про Sage они никогда ничего не говорил.
>> Не знаю кто чего говорил, но странно что Sage как-то совсем пропустили
>> в лекциях "Python в научных вычислениях".
> Вот и помогли бы Евгению с коллегами заместо лишнего флудаСамому лекцию прочитать что-ли?) Это просто багрепорт. Интересно было
бы мнение о Sage от докладчика, это вот фсе.PS: Кстати, как выяснилось - "в процессе" вышло помочь А.Г. (Hint: презентация SymPy
так в самом SymPy и не работает - починили только гентушную версию.)> (у меня, например, на комментарии времени нет, когда делаю что-либо действительно нужное).
Хвала Его Макароннейшеству, ненужно вы делаете часто, так что
недостатка в перла от вас в стиле бейжидовспасайроссию - мы не испытываем.Не подковырка ж.
>> Вот и помогли бы Евгению с коллегами заместо лишнего флуда
> Самому лекцию прочитать что-ли?Нет -- см. последние два слова #53.
> ненужно вы делаете часто
А вот что делаю, почему, зачем, когда, за счёт чего -- перед Вами отчитываться не намерен, равно как и с Вас отчёта не требую.
>>> Вот и помогли бы Евгению с коллегами заместо лишнего флуда
>> Самому лекцию прочитать что-ли?
> Нет -- см. последние два слова #53.Там автор топика, видимо, не понял о чем речь.
Объясняю по второму разу:
1) Мне было интересно, есть ли в докладе что-то помимо базового
введения в использование обозначенных инструментов. Напр., критика,
сравнение с чем-то и т.п. Это интересно, т.к. Грозин.Получил ответ - нет. Так что этот вопрос закрыт, смотреть кину смысла не вижу.
2) Было интересно также, почему не рассказали о Sage. Это - отдельный
вопрос, внятного ответа пока нет.>> ненужно вы делаете часто
> А вот что делаю, почему, зачем, когда, за счёт чегоДа расслабътесь:
>Не подковырка ж.
> Объясняю по второму разу:
> 1) Мне было интересно, есть ли в докладе что-то помимо базового
> введения в использование обозначенных инструментов. Напр., критика,
> сравнение с чем-то и т.п. Это интересно, т.к. Грозин.Это чуть другой жанр, для которого требуется обзор. Обычно такое знание "тёплое" после подготовительного этапа и отбора инструментария, но не когда уже вовсю в работе.
> 2) Было интересно также, почему не рассказали о Sage.
> Это - отдельный вопрос, внятного ответа пока нет.Ровно на эту тему и предложил _Вам_ им рассказать, если разбирались/применяли. Т.е. по возможности помочь уже вложенным временем.
>> > см. последние два слова #53.
>> 2) Было интересно также, почему не рассказали о Sage.
>> Это - отдельный вопрос, внятного ответа пока нет.
> Ровно на эту тему и предложил _Вам_ им рассказать, если разбирались/применяли.Ну и как это ответит на мой вопрос? :)
>>> 2) Было интересно также, почему не рассказали о Sage.
>>> Это - отдельный вопрос, внятного ответа пока нет.
>> Ровно на эту тему и предложил _Вам_ им рассказать, если разбирались/применяли.
> Ну и как это ответит на мой вопрос? :)Стоп. Именно на этот ответили ещё в #53, если вдруг не заметили:
>>>>> А по поводу Sage: в нашей окрестности как-то никто не использует его совсем,
>>>>> так что даже спросить не у кого как оно.Предположив, что прочли и уяснили, предложил заняться выяснением и сравнением совместно, раз интересно :)
>>>>>> А по поводу Sage: в нашей окрестности как-то никто не использует его совсем,
>>>>>> так что даже спросить не у кого как оно.
> Предположив, что прочли и уяснили, предложил заняться выяснением и сравнением совместно, раз интересно :)Это читал, да. Но Евгений - вроде как экспериментатор, не знаю насколько у него
"вся окрестность" охватывает остальных, включая Грозина.Но в общем да, я пока склоняюсь к тому что раздел про CAS написан абы было,
выбор конкретно SymPy - случаен и автор не использует Python для подобных задач.
Fortran+GnuPlot и Tkl/Tk для научных вычислений самое то, больше и не надо. Еще бы добавил Lisp или Haskell для работы с абстракциями.
> Fortran+GnuPlot и Tkl/Tk для научных вычислений самое то, больше и не надо.
> Еще бы добавил Lisp или Haskell для работы с абстракциями.Приезжайте на образовательную конференцию в Переславле через месяц: http://www.altlinux.ru/news/archive/2015/10/item/749/ -- вдруг да получится чего интересного обсудить с Непейводой на сей счёт.
Евгения уже пригласил: как минимум Георгий Курячий из упоминавшихся в переписке там наверняка окажется, а может, и все трое.
Грозин вроде с Mathematica работал и в Махима.
Mathematica --- это его основной рабочий инструмент, но это не мешает ему смотреть в сторону других CAS, да и вообще научных инструментов в принципе в качестве одного из разработчика gentoo.
> Mathematica --- это его основной рабочий инструментКстати, привет (из Python) от Mathics.
Паравозик, который смог -О ситуации с использованием достижений индустрии ИТ в образовании. Обычный комп в кабинете информатики вуза выглядит, как помойка с кучей софта в котором обычное 2+2 хрен вычислишь без ковыряния в "недрах" и mc-офисный пакет тут смотрится очень привлекательно.
Жаль, что отцы современной науки и образования так редко радуют осиливанием "правильных" техологий, которые можно переиспользовать без траты времени на перенос.
>Жаль, что отцы современной науки и образования так редко радуют осиливанием "правильных" техологий, которые можно переиспользовать без траты времени на перенос.У вас, у технодрочеров, "правильные технологии" каждый год новые, а людям работать надо. Они делом заняты - уменьшающим энтропию, в отличие от вашего комментария.
200 000 лет назад:
– Некогда нам изучать ваши придумки! Нам копать корешки и личинок надо да за живностью бегать – сама по себе она до смерти не загонится!
А то ишь, додумались не как все, ручками, а палкой корявой копать да такой же палкой по живности швырять! Куда только катится мир!1
Какие технологии появились за последнии 5 лет?
На ойфоне вон новые смайлики появились.Скажешь не технология?
а один нормальный pdf или epub запилить слабо? впрочем что удивляться все как всегда(
А где не так, как всегда?
Scilab, во всем обсуждении не встретилось ни одного слова "Scilab"
А что Scilab? По нему нужно отдельный курс делать, но в силу специфики конкретно моего окружения (физика высоких энергий), специалистов поблизости нет, так как оный не востребован.
Просто там выше люди упоминали Matlab и его проприетарность, а Scilab его прекрасно заменяет.
Как-то смотрел в сторону Питона, но язык Matlab/Scilab мне показался лаконичнее
> Как-то смотрел в сторону Питона, но язык Matlab/Scilab мне показался лаконичнееЭто где всю дорогу for ... end, if ... end. Мсье шутит?
> Просто там выше люди упоминали Matlab и его проприетарность,
> а Scilab его прекрасно заменяет.Кстати, напомнили -- есть ещё такие книжки:
---
Евгений Чичкарёв. Компьютерная математика с Maxima. Руководство для школьников и студентовЕ.Р. Алексеев, О.В. Чеснокова. Введение в Octave для инженеров и математиков
Хахаев И. А. Практикум по алгоритмизации и программированию на Python
Е. Р. Алексеев, Е. А. Чеснокова, Е. А. Рудченко. Scilab: Решение инженерных и математических задач
А вот Julia никто не ковырял?
> Scilab, во всем обсуждении не встретилось ни одного слова "Scilab"Это, наверно, больше инженерам интересно (octave тож).
Замечание к первой лекции: нет акцента на то, что целочисленное деление и взятие остатка работают по математическим правилам. Так>>> 2//3
0
>>> -2//3-1
>>> 2%32
>>> -2%31
Я думаю, что подобные замечания лучше сразу отправлять Андрею. Координаты тут: http://www.inp.nsk.su/~grozin/P.S. Есть языки, где другое поведение?
Ок,
почитаю лекции дальше, и если соберусь - то пошлю.
Другое поведение много где; в C, например, результат в этом случае implementation-defined.
> Другое поведение много где; в C, например, результат в этом случае implementation-defined.ISO/IEC 9899:TC3, 6.5.5
> When integers are divided, the result of the / operator is the algebraic quotient with any
> fractional part discarded.90)If the quotient a/b is representable, the expression
> (a/b)*b + a%b shall equal a.
Хорошо, я изучал C довольно давно; в определённом смысле это удобно что в C99 внесена ясность.
Но тем более - в C результат целочисленного деления и остатка в рассмотренном случае отличается от результата python.
> Но тем более - в C результат целочисленного деления и остатка в
> рассмотренном случае отличается от результата python.Вы точно читать умеете?
https://docs.python.org/3/reference/expressions.html#binary-...
Читать умею :)
Вот излагать свои мысли так чтобы всем было понятно не очень-то получается.В python 2 и 3 выражение (-2)//3 возвращает -1, в python 2 выражение (-2)/3 возвращает -1,
а в C, С++ и ещё куче языков выражение (-2)/3 имеет значение 0.Именно на это различие я и пытался обратить внимание.
А Вы на что?
> Я думаю, что подобные замечания лучше сразу отправлять Андрею. Координаты тут: http://www.inp.nsk.su/~grozin/
> P.S. Есть языки, где другое поведение?В принципе, тут к докладчику нет особых вопросов - он описал как ведут
себя разные операторы деления. Но вообще, не везде есть целочисленное деление в
виде отдельного оператора.Вот тут недавно ruby поминали. Там как раз / для целых - целочисленное
деление, специального оператора нет. Scheme вообще положено
возвращать рациональное число.Питону в этом смысле знатную засаду устроили (тут у Гвидо какая-то
детская травма вмешалась: http://python-history.blogspot.ru/2009/03/problem-with-integ...)
в том виде, что результат / сделали неточным (float). Я тоже немного удивлен, что Грозин
по этой гадости не проехался. Почтенные люди, имеющие отношение
к древним CAS - сто раз пальчиком тыкали в это безобразие, фактически
при каждом удобном случае.