ivn
|
veteran
|
|
|
|
Рег.: 04.09.2005
|
Сообщений: 1925
|
|
Рейтинг: 287
|
|
Re: Курс для Data Sciences (programming in R)
[re: burlivo]
31.01.2014 16:08
|
|
|
Курс - отличный. Там кстати как раз векторные операции хорошо объясняют.
В России тоже R продвигается. Я знаю универы, где по нему курсы в программу включают.
|
|
EF
|
enthusiast
|
|
|
|
Рег.: 19.06.2004
|
Сообщений: 385
|
|
Рейтинг: 199
|
|
Re: Курс для Data Sciences (programming in R)
[re: _vj_]
31.01.2014 22:34
|
|
|
Как это, так же? В Python можно спокойно циклами все оформлять, тот же map в Python по скорости незначительно быстрее for цикла. А вот в R если ты будешь использовать for вместо apply, у тебя скорость в разы упадет. В Matlab не уверен, я там не много программировал, но мне кажется, что там тоже можно циклами все делать.
|
|
Pixel
|
enthusiast
|
|
|
|
Рег.: 14.09.2009
|
Сообщений: 387
|
Из: ГЗ-Б
|
Рейтинг: 478
|
|
Re: Курс для Data Sciences (programming in R)
[re: EF]
01.02.2014 00:25
|
|
|
В ответ на:
В Matlab не уверен, я там не много программировал, но мне кажется, что там тоже можно циклами все делать.
в матлабе нужно по возможности избегать циклов, обходясь векторными операциями; циклы очень медленные там
|
|
_vj_
|
Rumoruka Kimolukime
|
|
|
|
Рег.: 26.03.2003
|
Сообщений: 7015
|
Из: не в ГЗ
|
Рейтинг: 3255
|
|
Re: Курс для Data Sciences (programming in R)
[re: EF]
01.02.2014 01:00
|
|
|
в матлаб точно, там даже специальное руководство по этому поводу есть.
питон тоже:
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
|
Mathematical! |
|
EF
|
enthusiast
|
|
|
|
Рег.: 19.06.2004
|
Сообщений: 385
|
|
Рейтинг: 199
|
|
Re: Курс для Data Sciences (programming in R)
[re: _vj_]
01.02.2014 15:06
|
|
|
Мы понимаем немного разные вещи по векторизацией. Если есть built-in функция (как, например, dot в твоем примере), разумеется, она будет быстрее, чем цикл. Но что если нужно применить какую-то user-defined функцию к каждому элементу массива? В этом случае, скорость map и for цикла в Python не будет сильно отличаться. Скорость же lapply (аналог map) и for цикла в R будет отличаться довольно существенно.
|
|
Nine17
|
Furia Roja
|
|
|
|
Рег.: 26.06.2003
|
Сообщений: 25543
|
|
Рейтинг: 13161
|
|
Re: Курс для Data Sciences (programming in R)
[re: EF]
02.02.2014 12:11
|
|
|
Надо просто понимать, что такое векторный язык. Векторные операции там не для скорости (хотя она и выше), а следствие совершенно другой идеологии. Если лабал на джаве и т.п., то не сможешь ни думать, ни эффективно писать программы на векторном языке значительное время. Как некоторая аналогия - функциональный vs императивный.
|
Entre flores fandanguillos y alegria nació España mi tierra de amor! |
|
Che
|
|
|
|
|
Рег.: 03.10.2003
|
Сообщений: 10373
|
Из: дома
|
Рейтинг: 5293
|
|
Re: Курс для Data Sciences (programming in R)
[re: EF]
02.02.2014 17:22
|
|
|
я бы не сказал, что векторные операции это какая-то отличительная особенность или тем более преимущество R.
в матлабе все построено на матричных/векторных операциях (даже название происходит от MATrix), в питоне основной инструмент для анализа данных это numpy и pandas - сделаны во многом по образу матлаба и в них тоже все построено на векторных операциях, в том числе есть всевозможные формы apply. можно еще SAS вспомнить - также никаких циклов.
много программировал на всех трех языках; я бы сказал, что по удобству векторных операций питон лучший из трех, по скорости и стабильности векторных операций - матлаб. в плане векторных операций оба выигрывают у R. в чем преимущество R перед питоном и матлабом - большое число пакетов со всевозможными статфункциями. любой метод описанный в какой-нибудь новой статье обычно можно найти в виде пакета для R. реализация обычно не очень качественная, поскольку реализуют авторы - исследователи, а не профессиональные программисты. но для research, прототипирования и практикумов этого обычно достаточно. промышленные системы обычно делают на чем-то другом типа питона, матлаба или SAS.
|
|
zex
|
sir
|
|
|
|
Рег.: 20.06.2007
|
Сообщений: 1309
|
|
Рейтинг: 2194
|
|
Re: Курс для Data Sciences (programming in R)
[re: Che]
02.02.2014 19:03
|
|
|
Quote:
по удобству векторных операций питон лучший из трех, по скорости и стабильности векторных операций - матлаб
"Internally, both MATLAB and NumPy rely on BLAS and LAPACK ..."( c )
по идее не должно быть какой-либо существенной разницы в скорости
|
|
EF
|
enthusiast
|
|
|
|
Рег.: 19.06.2004
|
Сообщений: 385
|
|
Рейтинг: 199
|
|
Re: Курс для Data Sciences (programming in R)
[re: Che]
02.02.2014 20:55
|
|
|
Я бы сказал так, на R нужно приложить намного больше усилий, чтобы сравниться с Matlab и Python. Многие вещи там довольно неочевидны. По поводу пакетов - это просто недостаток GPL языка: когда каждый может написать пакет, качество падает. Но это не значит, что пакеты в R написаны некачественно. Просто нужно понимать, какие пакеты лучше использовать в различных случаях.
|
|
scabarocci
|
добрый
|
|
|
|
Рег.: 26.09.2005
|
Сообщений: 1294
|
|
Рейтинг: 1030
|
|
Re: Курс для Data Sciences (programming in R)
[re: Che]
03.02.2014 19:14
|
|
|
Quote:
pandas
кстати, pandas как раз вдохновлялись именно R
|
|