Серед Matlab та Python, яка мова корисна для загального статистичного аналізу даних? Які плюси і мінуси, крім доступності, для кожного?
Серед Matlab та Python, яка мова корисна для загального статистичного аналізу даних? Які плюси і мінуси, крім доступності, для кожного?
Відповіді:
Як користувач Diehard Matlab за останні 10+ років, рекомендую вивчити Python. Коли ви будете достатньо кваліфіковані з мовою, коли ви працюєте на мові, яку ви вивчаєте, вам здасться, що ви недостатньо продуктивні, і ви перейдете до використання найкращої мови за замовчуванням. Принаймні, я б запропонував вам спробувати стати однаковою мірою на кількох мовах (я б також запропонував R).
Що мені подобається в Matlab:
Що мені не подобається в Matlab:
median
функція Matlab , яка виконує своєрідні дані, а потім приймає середнє значення . Це був неправильний алгоритм з 70-х.-nojvm
схоже, допомагає ...
shuffle
може бути в інструментальній панелі, не є запасом matlab. навряд чи може бути гіршим за вбудований, randperm
який повертає індекс сортування випадкового вектора. Знову ж, це, мабуть, неправильний алгоритм (я щойно дізнався про переміщення Knuth-Fisher-Yates тут на статистиці.SE) ..
randperm
полягає в тому, що на нього впливає висівання randn
, тоді як mex'ed версія Knuth-Fisher-Yates, можливо, не може отримати доступ до насіння Randn "всередині", і чиста .m версія перетасування, ймовірно, бути занадто повільним.
Дозволяє розбити її на три області (у верхній частині моєї голови), де програмування відповідає статистиці: обробка даних, числові процедури (оптимізація та таке) та статистичні бібліотеки (моделювання тощо).
По-перше, найбільша різниця полягає в тому, що Python - це мова програмування загального призначення. Matlab чудовий, якщо ваш світ приблизно ізоморфний числовому масиву fortran. Після того, як ви почнете займатися питаннями пошуку даних та пов'язаними з ними проблемами, Python перекреслює Matlab. Наприклад, дивіться книгу Грега Вілсона: Зниження даних: вирішення проблем щоденного користування Java, Python тощо .
По-друге, Matlab дійсно блищить числовою роботою. Багато дослідницької спільноти використовує це, і якщо ви шукаєте, скажімо, якийсь алгоритм, пов'язаний з документом у стисненому зондуванні, ви набагато більше шансів знайти реалізацію в Matlab. З іншого боку, Matlab є свого роду PHP наукових обчислень - він прагне мати функцію для всього, що знаходиться під сонцем. Естетика та архітектура, що випливають із цього, здивують, якщо ви чувак з мовою програмування, але в утилітарному плані це буде виконано. Багато з цього стало менш привабливим із зростанням Numpy / Scipy, ви так само ймовірні, що ви знайдете бібліотеки оптимізації та машинного навчання, доступні для Python. На будь-якій мові взаємозв’язок із C приблизно так само простий.
Щодо наявності статистичних бібліотек для моделювання тощо, то обох дещо бракує в порівнянні з чимось на кшталт Р. (Хоча я підозрюю, що обидва будуть задовольняти потреби 80% людей, які роблять статистичну роботу.) Для сторони Python це питання. : Python як обробка статистики . Що стосується Matlab, я знаю, що існує інструментарій статистики, але я дозволю комусь більш обізнаному заповнити пробіли (мій досвід роботи з Matlab обмежений числовою роботою, не пов'язаною зі статистикою).
Я також був завзятим користувачем Matlab протягом більше 10 років. Протягом багатьох років у мене не було причин працювати поза набором інструментів, який я створив для своєї роботи. Хоча для функції інструментів було створено багато функцій, мені часто потрібно було створити алгоритми для швидкого аналізу повороту. Оскільки ці алгоритми часто використовують матричну математику, Matlab був ідеальним кандидатом на мою роботу. Окрім мого набору інструментів Matlab, інші мої групи активно працювали на Java, оскільки була чітка сумісність між мовами. Протягом багатьох років я був повністю задоволений Matlab, але близько 3 років тому я вирішив почати повільний перехід від Matlab і радо сказати, що не відкрив його вже близько року. Ось причина мого переїзду:
-nodesktop
варіанту добре сьогодні, але в ньому є проблеми.Це лише кілька моїх численних захоплень Matlab. Це один яскравий атрибут: легко, дуже просто написати код швидко (якщо не потворно). Я все-таки залишив його, і мої пошуки провели мене через Clojure-> JavaScript-> Python <-> Julia; так, я був всюди.