LINUX.ORG.RU

Octave 4.0

 , , ,


5

5

GNU Octave — свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня.

В новой версии произошли следующие изменения, заметные пользователю:

  • Графический интерфейс пользователя, написанный с использованием библиотеки Qt, доведён до стабильного состояния и теперь используется по умолчанию. Данный интерфейс аналогичен применяемому в MATLAB и содержит файловый менеджер, таблицу для просмотра переменных и их значений, журнал команд, а также вкладки командной строки, редактора исходных кодов и справочной документации. Пример внешнего вида: снимок 1, снимок 2. Традиционный интерфейс командной строки также доступен при помощи стартового параметра --no-gui или через бинарный файл octave-cli.
  • Новый синтаксис для объектно-ориентированного программирования classdef.
  • Добавлен новый набор функций и классов для работы с аудиоданными.
  • Добавлены новые классы.
  • Добавлены новые функции.
  • Настраиваемое ужесточение совместимости с MATLAB при использовании диапазонов, диагональных и перестановочных матриц. Octave применяет внутренние оптимизации для минимизации занимаемой такими данными памяти. Три новые функции (disable_range, disable_diagonal_matrix. disable_permutation_matrix) позволяют выбирать хранение в оптимизированном виде или полными матрицами. Также возможно использование параметра --braindead при старте.
  • Изменения в функциях ismatrix(x), nextpow2, strfind, а также функциях для интерполяции данных в плане совместимости с MATLAB.
  • Переработаны функции для работы с архивами. Также изменено поведение по умолчанию: теперь все действия будут производиться в той же директории, что и архив или оригинальные файлы.
  • Доработки в функциях, повышение быстродействия некоторых из них.
  • Некоторые функции и классы, объявлены устаревшими и будут удалены в будущих версиях Octave.
  • Некоторые функции и классы, объявленные устаревшими в прошлых версиях Octave, были удалены.
  • Некоторые предупреждения и настройки теперь включены по умолчанию.
  • Переработаны некоторые предупреждения для повышения очевидности.
  • Изменено поведение некоторых тригонометрических функций для унификации с другими математическими пакетами.
  • Множество доработок для визуализации данных на экране и печати. Также при использовании графического интерфейса доступно отображение при помощи библиотеки Qt.
  • Поддержка OpenMP включена по умолчанию, что позволяет задействовать параллельные вычисления в скомпилированных oct-файлах.

Сайт проекта


Исходные коды Octave


Дополнительные пакеты Octave Forge


Подробный список изменений

★★★★★

Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от Eddy_Em

atlas, openblas, mkl. Если конечно в дистрибутиве есть штатный режим переключения. Иначе надо самому пересобирать.

dinn ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Вокруг — одни уроды.

Тебе не приходило в голову, что если всё вокруг пахнет говном, которого остальные не замечают, то это ты обосрался?

То они ненужноД запилят в 99% дистрибутивов

Есть в мире что-то постоянное - например баттхёрт тупого клоуна по поводу systemd. Мелочь, а всё-таки приятно.

anonymous
()
Ответ на: комментарий от ptarh

У R закос в сторону статистики по доступным пакетом, но векторные и матричные вычисления, особенно уровня octave, он покроет без проблем.

Любопытно, никогда не использовал R в качестве числодробилки - у меня как правило всё уже обсчитано и свалено в .csv который сношается data.table; интересно, как там скорость матрично-векторных в R по сравнению с octave/scilab?

anonymous
()
Ответ на: комментарий от dinn

Python и R не имеют главного аргумента Octave - совместимость с matlab.

Оно не всем надо. А вот knitr/sweave для воспроизводимых исследований настолько хороши, что можно пожертвовать и скоростью и совместимостью.

anonymous
()
Ответ на: комментарий от anonymous

Зависит, как везде, от того, что у тебя стоит в качестве движка для матричных вычислений - BLAS/OpenBLAS/ATLAS. Но как и во всех таких языках, скорость в качестве числодробилки все равно оставляет желать лучшего, поэтому критичные для вычислений куски кода, если он потом используется в производстве, или переписываются на Rcpp, или на фортране. Впрочем, эти проблемы такие же для питона и матлаба.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Кстати, на главной странице Джулии есть сравнительная таблица. Там видно, что перемножение матриц (нижняя строка) в математических пакетах мало отличается от Си с OpenBLAS. И даже вчетверо быстрей Фортрана.

Bell
()
Ответ на: комментарий от Bell

Они там сравнивают теплое с мягким. Код на фотртане для вычислений ты будешь собирать конечно же не кривеньким gcc, да и на практике там столько кривого кода еще, что не на синтетических бенчмарках все тормозит и скрипит. Go for mature languages. Занимательно, особенно встроенное распараллеливание, но им еще пахать и пахать.

В целом то большая часть анализа данных состоит из ручной работы и размышлений, как делать анализ. А оптимизирование уже последняя часть работы, не всегда нужная и касающаяся пары ключевых функций. Их переписывают в легко встраивающихся Rcpp/Сython и забывают навсегда.

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от Begemoth

Этот?

sci-libs/blas-atlas 
Спасибо, попробую переключиться на него. Не думал, что реализации сильно по производительности отличаются.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ptarh

Да, с фортраном там что-то не то явно. Но я хотел сказать, что BLAS везде работает примерно одинаково и сильно не ускоришь.

Bell
()
Ответ на: комментарий от Bell

Все упирается не в калькулятор для матриц - этим в наше время уже никого не удивишь и поэтому octave выглядит на фоне python/R так жалко. Имеют значение API к БД, качество движков для графики, кол-во сторонних пакетов и т.д. Никакая скорость не вернет тебе проигрыш во времени из-за того, что тебе каждый чих приходится имплементировать самому, а потом еще долго ловить баги. Соревнование между ЯП для анализа данных уже давно перешло в стадию соревнования экосистем, а не пиписькомерок на бенчмарках. Для ускорения кода везде есть достаточно возможностей.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Согласен. В свое время так и перешел с Октаве на Матлаб, когда сначала понадобился тулбокс, которого не было в Октаве, потом решило API и скорость (правда скорость я мерял неправильно, как сегодня выяснилось).

Bell
()
Ответ на: комментарий от ErasimHolmogorin

Во влажных мечтах ананимуса

Нет, детка. Не мечты, но реальность.

anonymous
()
Ответ на: комментарий от ptarh

В феврале 2009 один товарищ (кстати, мой бывший дипломник) познакомил с Питоном. Раньше писать всё на интеловском фортране. С тех пор много чем интересовался, в том числе Octave, Julia, R. Подсадил своего аспиранта на SciLab (и таки он защитился на прошлой неделе). Ещё один магистр делал у меня диссертацию по анализу данных в R. Всё-таки Питон за счёт своей универсальности, большого числа и в целом высокого их качества --- вне конкуренции.

Недавно ради интреса сделал ряд работ с помощью Ocaml с использованием PLPlot и GSL. Работать можно и если бы я не был знаком с Питоном, я бы сказал, что это удобный и продуктивный инструментарий. Но всегда, когда что-то нужно сделать срочно или сделать что-то особо сложное --- приходится возвращаться к Питону.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

Недолюбливаю питон за:

- ущербную систему пакетирования, вечно создающую проблемы на пустом месте и плохо справляющуюся с адскими зависимостями

- Отсутствие IDE для анализа данных качества RStudio

- Cлабые библиотеки для статистики и графики в сравнении с R

- Куча оверхеда, так как все это просто нашлепки на ЯП, который сам базового функционала для анализа данных не имеет: функция может быть в numby, scipy или дергаться через pandas - какую возьмем?

- Насильное OO раздражает - таки для анализа данных оно нужно весьма редко

- Систему индексирования, которая источник вечных ошибок - люди с нуля и по интервалам не считают

Плюсы:

- Легко встраивается в другие решения и расширяется, если нужен не только анализ данных.

- Простая работа с текстовыми данными

Мой вердикт: знать нужно, но лучше по возможности избегать. :)

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от ptarh

Для IDE есть божественный PyCharm, теперь с поддержкой iPython Notebook.

Касательно остального, Python, это язык общего назначения, в отличие от R, поэтому воспринимать его надо соответственно.

anonymous
()
Ответ на: комментарий от ptarh

- ущербную систему пакетирования, вечно создающую проблемы на пустом месте и плохо справляющуюся с адскими зависимостями

Для нормальных ОС не актуально.

- Отсутствие IDE для анализа данных качества RStudio

Может, я какой-то неправильный, но я так и не понял зачем мне для этого может понадобиться IDE.

- Cлабые библиотеки для статистики и графики в сравнении с R

Ой, да ладно.

- Куча оверхеда, так как все это просто нашлепки на ЯП, который сам базового функционала для анализа данных не имеет: функция может быть в numby, scipy или дергаться через pandas - какую возьмем?

Ту, которая для вашей задачи удобнее. А если нет разницы, то numpy. Кстати, практически не встречал таких пересечений. Вот что порой слегка раздражает, так это игра «угадай в каком пакете нужная функция».

- Насильное OO раздражает - таки для анализа данных оно нужно весьма редко

O_o Я не осилил OO и пишу на питоне в близком к чисто процедурному стиле. Что там где насильное?

- Систему индексирования, которая источник вечных ошибок - люди с нуля и по интервалам не считают

Утиные истории. С какой системы человек начал, той на всю жизнь и травмирован. Меня, например, корёжит от индексации с единицы. Не думаю, что тут возможны какие-то железные доводы в пользу одного из вариантов.

Axon ★★★★★
()
Ответ на: комментарий от anonymous

Pycharm плохо подходит для анализа данных - не хватает нормальной REPL, чтобы все автоматом выполнялось в ipython а не в дефлотном интерпретаторе и подвешенного на него variable explorer. Без всей этой пистоновой шелупони из подгруженных модулей, которые при дебаггинге вычислений к черту не сдались. Spyder мог бы претендовать на эту роль, но он слишком кривой, сырой, падучий и ничего толком не умеет.

iPython Notebook скорее в сторону reproducible research и для этого в R свои тулзы.

Касательно остального, Python, это язык общего назначения, в отличие от R, поэтому воспринимать его надо соответственно.

Ну это меня мало интересует, так как обсуждается пистон в роли ЯП для анализа данных. Что на нем еще можно очередной проигрывать музыки написать это хорошо, но не является предметом обсуждения.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

- ущербную систему пакетирования, вечно создающую проблемы на пустом месте и плохо справляющуюся с адскими зависимостями - Отсутствие IDE для анализа данных качества RStudio - Cлабые библиотеки для статистики и графики в сравнении с R - Куча оверхеда, так как все это просто нашлепки на ЯП, который сам базового функционала для анализа данных не имеет: функция может быть в numby, scipy или дергаться через pandas - какую возьмем? - Насильное OO раздражает - таки для анализа данных оно нужно весьма редко - Систему индексирования, которая источник вечных ошибок - люди с нуля и по интервалам не считают

С проблемеми пакетирования не сталкивался, но программ более чем из 6 модулей не писал. Или вы имеете в виду производство бинарников?

Я пишу в IDLE, мне хватает. Много лет писал в Geany. Одно время использовал Komodo, но оно слишком наворочено.

Библиотек для графики там много, но по сути все используют Matplotlib, в котором пока только графы нормальные отсутствуют. Всё остальное уже давно есть. Для статистики мне тоже всего хватает. Последние два года читаю и веду лабораторки по основам статистики с помощью scipy.stats.

Согласен, что есть несколько версий одного и того же. Есть простое правило: если что-то есть в numpy, всегда бери из него. Нет в numpy, но есть в scipy - оттуда. Всегда нужно брать самый нижний пакет.

Нет там никакого насильного ОО. Это не Руби. Я иногда пишу через классы, а иногда объявляю глобальные переменные в модуле или вообще всё передаю в качестве аргументов. Использовать свойства и методы уже реализованных объектов удобно, но если вам не нравится a.sum(), вы всегда можете написать np.sum(a).

Это зависит от вашего происхождения. У нас студенты приходят в выч. мат. из программирования. Они не математики ни разу. Основное направление у нас «Биотехнические системы и технологии». Для программиста естественна нумерация с нуля. И она решает много проблем на продвинутом уровне. Если люди пришли со знанием Паскаля, причём массивы им давались сразу динамические, а параллельно с выч. матом учат C и микроконтроллеры, хорошо, что везде нумерация с нуля. Для математиков это, конечно, непривычно. У меня система индексирования Питона не вызывает никаких ошибок кроме того, что какие-то идиоты в Matplotlib сделали нумерацию графиков с 1. Вообще, использовать

for i in range(10):
    b[i] = f(a[i])
не очень хорошо. Нужно делать:
for el in a:
    b[i] = f(a)
Или действовать через enumerate, списковые выражения, map. Тогда проблемы нумерации просто не возникнут почти никогда.

Vudod ★★★★★
()
Ответ на: комментарий от Axon

Для нормальных ОС не актуально.

Нет худшей идеи, чем ставить пистон для вычислений через репы оси. Смесь говна мамонта и отсутствия всякой оптимизации.

Может, я какой-то неправильный, но я так и не понял зачем мне для этого может понадобиться IDE.

Может ты там 2+2 просто прибавляешь? :) Мне, как минимум, нужно постоянно рассматривать структуру данных.

Ой, да ладно.

Ты пересчитай попытки в Python скопировать ggplot2. Там уже скоро пальцев одной руки не хватит. А ведь мы еще не добрались до dplyr...

Утиные истории. С какой системы человек начал, той на всю жизнь и травмирован.

Ну да. Но поскольку когда людей в школе учат считать предметы, то не в стиле «с нуля и к последней цифре прибавляя +1», то выбор очевиден, вроде.

ptarh ★★★★★
()
Ответ на: комментарий от Vudod

С проблемеми пакетирования не сталкивался, но программ более чем из 6 модулей не писал. Или вы имеете в виду производство бинарников?

Нет-нет, я про тот ад, который привел к созданию дистрибутивов типа EPD и анаконда. Так как единственный способ разобраться там с зависимостями, это делать срезы и их тестировать. Поскольку питон для научной деятельности тянет их просто сотнями, то там время от времени наступает жопа, с которой допотопный pip просто не справляется.

Для программиста естественна нумерация с нуля.

Проблема в том, что анализом данных занимаются обычно не программисты, а люди совсем других специальностей.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Нет худшей идеи, чем ставить пистон для вычислений через репы оси. Смесь говна мамонта и отсутствия всякой оптимизации.

Для нормальных дистрибутивов не актуально. ☺

Может ты там 2+2 просто прибавляешь? :) Мне, как минимум, нужно постоянно рассматривать структуру данных.

А IDE это как-то позволяет? Как? Вообще, да, у меня сложных структур не бывает. Только сложные (для меня) действия над ними.

Ты пересчитай попытки в Python скопировать ggplot2. Там уже скоро пальцев одной руки не хватит. А ведь мы еще не добрались до dplyr...

Кто все эти люди, и зачем они нужны при наличии божественного matplotlib?

Ну да. Но поскольку когда людей в школе учат считать предметы, то не в стиле «с нуля и к последней цифре прибавляя +1», то выбор очевиден, вроде.

Как видите, не так уж и очевиден.

Axon ★★★★★
()
Ответ на: комментарий от ptarh

Python, R кроют его по кол-ву имеющихся либ как бык стадо

Не считая, конечно, матлабоских либ, да?

Julia тоже

Проект очень интересный, да, согласен. Но пока я лично опасаюсь переходить на него. Не исключено, что несмотря на все свои достоинства оно помрёт, так и не добившись признания.

unanimous ★★★★★
()
Ответ на: комментарий от Axon

Для нормальных дистрибутивов не актуально. ☺

Нормальный дистрибутив для питона: EPD/Anaconda :)

А IDE это как-то позволяет? Как? Вообще, да, у меня сложных структур не бывает. Только сложные (для меня) действия над ними.

Кое-кому нужно скачать RStudio и посмотреть, что хорошая научная IDE позволяет и как. Правда, потом могут быть проблемы вернуться на IDE для питона. Я предупреждал, если что :)

Кто все эти люди, и зачем они нужны при наличии божественного matplotlib?

Что в этом basic аде божественного? Осиливший layers шарахается от него как от огня. Ну и я уж ничего не скажу про его документацию, в которой можно рыться днями и так и не найти то, что тебе нужно, хыхы.

Как видите, не так уж и очевиден.

Очевиден, просто «утиные истории».

ptarh ★★★★★
()
Ответ на: комментарий от unanimous

Не считая, конечно, матлабоских либ, да?

Ой-вей, знаю я этот матлабовский «опенсурс», который почти весь дергает матлабовские тулбоксы и на этом процесс встал. Я скажу так: если у кого матлаб головного мозга, очень печальное и опасное заболевание, то неси деньги mathworks. Правда, R/Python кроют и матлаб по кол-ву имеющихся либ. Исключение, пожалуй, Simulink, ему аналогов нет.

Не исключено, что несмотря на все свои достоинства оно помрёт, так и не добившись признания.

Не исключено, но скорее ему еще нужно лет 5-10, чтобы добраться до уровня аналогичных решений сегодня. А ведь они тоже на месте не стоят.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Кое-кому нужно скачать RStudio и посмотреть, что хорошая научная IDE позволяет и как. Правда, потом могут быть проблемы вернуться на IDE для питона. Я предупреждал, если что :)

Не уверен, что смогу оценить без понимания даже основ синтаксиса R. А изучать только ради этого как-то не прёт.

Что в этом basic аде божественного?

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

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от ptarh

то неси деньги mathworks

Я разрабатываю оригинальные программы и не завишу от тулбоксов. В лабе есть купленный матлаб, да, но весь код мною написанный, работает в октаве тоже.

unanimous ★★★★★
()
Ответ на: комментарий от Axon

Статей про ggplot2 в сети примерно over9000, так что я дерну просто первую попавшуюся. Вердикт очевиден - он экономит адскую кучу времени на вдалбливании «тупого» кода, который по сути, делает одно и то же.

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от Axon

Тем, что одной строкой делает то, что в mpl делается 20ю. diamonds дефлотный dataset для тренировок, его вытащить не проблема. Можешь попробовать на своем mpl построить такое и посмотреть, 3 строки у тебя выйдут или все 100. Поэтому и облизываются на ggplot2, но hadley wickham питон не любит, бида-бида :)

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Тем, что одной строкой делает то, что в mpl делается 20ю.

Но при необходимости сделать то, что mpl делает одной строкой, понадобятся те же 20. Это просто другой дефолт, вот и всё.

Можешь попробовать на своем mpl построить такое и посмотреть, 3 строки у тебя выйдут или все 100.

Ничего такого там не вижу. В 5-10 строк аналог легко можно получить.

Axon ★★★★★
()
Ответ на: комментарий от Axon

Это просто другой дефолт, вот и всё.

Nope. Это другой подход, в котором ты работаешь с данными и их представлениями в графике, а не пердолишь руками каждый tick. Я не хочу руками, как мартышка, разбивать все на отдельные графики, я просто говорю «сделай мне facets по фактору X».

Ничего такого там не вижу. В 5-10 строк аналог легко можно получить.

Ну так вперед :)

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Nope. Это другой подход, в котором ты работаешь с данными и их представлениями в графике, а не пердолишь руками каждый tick. Я не хочу руками, как мартышка, разбивать все на отдельные графики, я просто говорю «сделай мне facets по фактору X».

Для быстрого превью прикольно, да. Но для публикаци всё равно придётся каждую мелочь отдельно допиливать, так что без ручной дрочки никуда.

Ну так вперед :)

Лень... Но мне почти то же самое приходилось рисовать, так что я не на кофейной гуще гадаю.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Для быстрого превью прикольно, да. Но для публикаци всё равно придётся каждую мелочь отдельно допиливать, так что без ручной дрочки никуда.

Меньше, чем ты думаешь - все вмещается строк в 8. Для публикаций в mpl приходилось и строк на 50 писать, и это нормально. А уж поменять тип анализа в mpl значит переписывать весь график, а в ggplot2 просто поменять geom. К чему это я: использовал и base plot в R, и mpl и ggplot2 и последний лучший выбор из всех. Если ты можешь собрать данные в tidy data, ggplot очень не любит помойки.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

А уж поменять тип анализа в mpl значит переписывать весь график, а в ggplot2 просто поменять geom.

В mpl тоже обычно достаточно тип графика поменять. Ну, иногда ещё убрать неподдерживаемые новым типом аргументы.

Но, в целом, сдаюсь, убедили. Правда, я всё равно утёнок, и смысла слезать с пистона для себя пока не вижу. ☺

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 3)
Ответ на: комментарий от ptarh

Pycharm плохо подходит для анализа данных - не хватает нормальной REPL, чтобы все автоматом выполнялось в ipython а не в дефлотном интерпретаторе и подвешенного на него variable explorer.

Теперь в консоли PyCharm поддерживается iPython, причем интерактивная графика тоже работает.

iPython Notebook скорее в сторону reproducible research и для этого в R свои тулзы.

... но его интеграцию с PyCharm можно использовать вместо REPL.

anonymous
()
Ответ на: комментарий от anonymous

Теперь в консоли PyCharm поддерживается iPython, причем интерактивная графика тоже работает.

Я в курсе про консоль, но он все еще заставляет руками швырять ему туда код, вместо того, чтобы заюзать его в качестве дефлотной среды для выполнения, не перезапуская ее заново. Spyder делает это правильно, в принципе - все что выполняется идет там через один и тот же kernel от iPython и из него же берутся данные для variable explorer. У PyCharm был вопрос где-то в саппорте, когда они запилят нечто подобное. Они выразились в том духе, что не приоритет, так как научный народ в основном использует бесплатную версию. Но, возможно, при взлете data science в бизнесе последних лет дойдет и до нормальной реализации. Пока это полурешение и не особо удобное.

Суть всего этого в том, что при анализе данных ты обычно подгружаешь данные и начинаешь с ними возиться в консоли, а оттуда уже строишь код и швыряя его кусками туда и сюда. Поэтому REPL здесь оптимальное решение. А PyCharm все норовит по дефлоту выполнить код в отдельном интерпретаторе и убить его после.

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от ptarh

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

Поверю тебе на слово, но вообще это звучит так, как будто это легко исправить. Если не хочешь ковыряться в исходниках сам, то завотай проблему на ютраке, подзуди коллег сделать то же самое. Они реально исправляют темы, которые набирают голоса.

anonymous
()

На кой леший там нужен этот интерфейс a la matlab, #!/usr/bin/octave в начало и поехали. Лучше бы spectrogram и чего ещё не хватает в пакете signal запилили.

// шучу, на самом деле всё нужно.

d_a ★★★★★
()
Ответ на: комментарий от anonymous

Я не умею в жабокод, у меня нет мотивации («в R все уже работает») да и исходники PyCharm это вам не хрен собачий - некоторые DE меньше весят. :) У них есть, например, определенные сдвиги в этом направлении - смотрим сюда. Но, во-первых, только через дебаггер, во-вторых, тот же объект от numpy это помойка из всех его внутренних кишок, когда тебя интересуют обычно только его значения. Добавить к этому все подгруженные либы, которые тоже там ошиваются и получаем совершенно неиспользуемый для этих целей variable explorer. Ну и во всем у них так. Для галочки вроде и есть, на практике мало пригодно.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Вот R этот, хорошая у него графика, и RStudio мне понравился, как я его поставил (пусть и для программирования непригодно, но для ковыряния данных выглядит очень классно)... в кого же язык то вот только сам по себе такой гадостный? Никак не мог себя заставить за него взяться :-( Правда я больше анализом данных не занимаюсь, лучше хаскель какой-нибудь буду грызть.

anonymous
()
Ответ на: комментарий от anonymous

R это миленькая, в основном функциональная, химера на базе схемы, которая по чудному совпадению имеет с-подобный синтакс. Она танцует вокруг одной задачи и делает это с дикой эффективностью. Впрочем, жалобы на то, что «ниасилил» тоже не новы, я лишь скажу, что чем больше возишься с R, тем сложнее кодить в громоздком питоне.

У начинающих выносит мозг в основном по 2м причинам:

1) Привычка заворачивать функции в функции, а те снова в функции, а лучше написать функцию, которая заворачивает функцию в функцию в функцию и ее снова завернуть в функцию. На всякий случай.

2) Векторизация всего, чего можно и нелюбовь пишущих на R к loops. Это упирается в детальное знание функций (ты заметил, что в R часто приходится прибегать к этому слову?), например *apply-семейства.

В последнее время хитрые аксакалы переизобрели пайпы для данных в magittr и dplyr и теперь отрываются на полную.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Ну положим пугать векторизацией матлабников это как ежа.... А вот синтаксис у R странноватый. Не случайно в соседней ветке кто-то принял его за ООП.

Но то что визуализация у него гораздо лучше матлаба это да. Про ggplot не знал, сейчас смотрю.

Bell
()
Ответ на: комментарий от ptarh

Нет, функции функций от функций мне нравятся, с этим никаких проблем нет, также как и с векторами. Те же любители NumPy в итоге к этому приходят...

Мне синтаксис именно показался каким-то особо пакостным, ну и плюс с типами данных не разобрался. Векторов там что-то многовато, и все они какие-то немного разные. Нет бы по рабоче-крестьянски --- POD, vector, map, unordered map, set, unordered set; или list / tuple, set, dict, OrderedDict... Ну и вообще, про всякие там модули, пространства имен тоже чего-то своё.

Короче всё понятно, что хороший инструмент для своей задачи, но хотелось бы всё-таки как Julia, чтобы с человеческим лицом было, т.е. все основные моменты, которые в языках общего назначения тоже присутствовали.

anonymous
()
Ответ на: комментарий от anonymous

Там по сути есть только один тип данных - вектор. Переменная - вектор с длиной 1. Матрица - структура с вектором данных одного типа. data.frame - структура с вектором данных разного типа по колонкам. List - все что угодно, но тоже вектор. Или другой list, но же тоже вектор. И так далее. В этом, я бы сказал, есть своя изумительная красота и простота. Тут могу только посоветовать книгу гуру ©

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)

прочитал тему, возник вопрос - только я пользуюсь SageMath, как самым практичным и универсальным инструментом? Да весит очень много, но удовлетворяет нужды студента кафедры Электропривода и Автоматизации ПромУстановок УрФУ, на 95% (не хватает реализации теоремы запаздывания из преобразования Лапласа - жизнь бы здорово облегчило - кто знает софт умеющий обратное преобрахование Лапласа с учётом этой теоремы - отпишитесь пожалуйста)
С Уважением, простой Уральский студент

madarexxx
()
Ответ на: комментарий от anonymous

А именно, если нужно проредить или обрезать данные. Или нужен предпоследний элемент. Или унжно извлечь по индексу в новом порядке. Всё это делается и выгляждит просто и не нужно писать циклы и лямбды.

Vudod ★★★★★
()
Ответ на: комментарий от madarexxx

Мой вам совет: пользуйтесь и дальше. Для меня как человека, 7 лет писавшего на Фортране, это --- страшный комбайн. Но если он удовлетворяет вашим требованиям, не слушайте ханжей и спокойно работайте.

Vudod ★★★★★
()
Последнее исправление: Vudod (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.