Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/ashowflat.php?Number=11826234&src=&showlite=l
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 12:09:49 2016
Кодировка: Windows-1251
Курс для Data Sciences (programming in R) - Public forum of MSU united student networks
General Discussion >> Study (Archive)

Страницы: 0 | 20 | (21) | показать все
EF : Re: Курс для Data Sciences (programming in R)  [re:_vj_]   31.01.2014 22:34    | Reply | Edit |
-3
Как это, так же? В Python можно спокойно циклами все оформлять, тот же map в Python по скорости незначительно быстрее for цикла. А вот в R если ты будешь использовать for вместо apply, у тебя скорость в разы упадет. В Matlab не уверен, я там не много программировал, но мне кажется, что там тоже можно циклами все делать.

Pixel   [re:EF]   01.02.2014 00:25    | Reply | Edit |
2
В ответ на:

В Matlab не уверен, я там не много программировал, но мне кажется, что там тоже можно циклами все делать.




в матлабе нужно по возможности избегать циклов, обходясь векторными операциями; циклы очень медленные там

_vj_   [re:EF]   01.02.2014 01:00    | Reply | Edit |
1
в матлаб точно, там даже специальное руководство по этому поводу есть.

питон тоже:
code:
$ cat loop.py from numpy import array from numpy.random import rand for i in range(50): v = rand(100000) s = 0 for x in v: s += x*x $ time python loop.py real 0m4.980s user 0m4.928s sys 0m0.020s


и

code:
$ cat dot.py from numpy import array, dot from numpy.random import rand for i in range(50): v = rand(100000) s = dot(v, v) $ time python dot.py real 0m0.258s user 0m0.216s sys 0m0.032s



EF   [re:_vj_]   01.02.2014 15:06    | Reply | Edit |
2
Мы понимаем немного разные вещи по векторизацией. Если есть built-in функция (как, например, dot в твоем примере), разумеется, она будет быстрее, чем цикл. Но что если нужно применить какую-то user-defined функцию к каждому элементу массива? В этом случае, скорость map и for цикла в Python не будет сильно отличаться. Скорость же lapply (аналог map) и for цикла в R будет отличаться довольно существенно.

Nine17   [re:EF]   02.02.2014 12:11    | Reply | Edit |
0
Надо просто понимать, что такое векторный язык. Векторные операции там не для скорости (хотя она и выше), а следствие совершенно другой идеологии. Если лабал на джаве и т.п., то не сможешь ни думать, ни эффективно писать программы на векторном языке значительное время. Как некоторая аналогия - функциональный vs императивный.

Che   [re:EF]   02.02.2014 17:22    | Reply | Edit |
3
я бы не сказал, что векторные операции это какая-то отличительная особенность или тем более преимущество R.

в матлабе все построено на матричных/векторных операциях (даже название происходит от MATrix), в питоне основной инструмент для анализа данных это numpy и pandas - сделаны во многом по образу матлаба и в них тоже все построено на векторных операциях, в том числе есть всевозможные формы apply. можно еще SAS вспомнить - также никаких циклов.

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

zex   [re:Che]   02.02.2014 19:03    | Reply | Edit |
0
Quote:

по удобству векторных операций питон лучший из трех, по скорости и стабильности векторных операций - матлаб



"Internally, both MATLAB and NumPy rely on BLAS and LAPACK ..."( c )

по идее не должно быть какой-либо существенной разницы в скорости

EF   [re:Che]   02.02.2014 20:55    | Reply | Edit |
0
Я бы сказал так, на R нужно приложить намного больше усилий, чтобы сравниться с Matlab и Python. Многие вещи там довольно неочевидны. По поводу пакетов - это просто недостаток GPL языка: когда каждый может написать пакет, качество падает. Но это не значит, что пакеты в R написаны некачественно. Просто нужно понимать, какие пакеты лучше использовать в различных случаях.

scabarocci   [re:Che]   03.02.2014 19:14    | Reply | Edit |
0
Quote:

pandas



кстати, pandas как раз вдохновлялись именно R

Top