読者です 読者をやめる 読者になる 読者になる

30代が英国でデータサイエンスを学ぶ

特に説明はございません

備忘メモ:プログラム

備忘メモ

最近は、徐々に授業もスピードアップしてきており、私も周りの学生もついていくのに必死な状況になってきている。この辺りが最初の壁になるのだろうか、といった風に他人事のように考えながらも、落ちこぼれないように気をつけていきたい。


授業ではMatlabという言語を使用してコードを書くことが多い。
これは困った、というのが正直な感想である。私は今までデータ分析をほとんど学んだことがなかったため、プログラミング言語も新たに学ばなくてはいけないだろうと考えていた。自分で調べた限りでは、PyhonとRがこの分野では主流であった。それらの言語も学んでおきたい、というのが個人的な希望であったし、それらの言語を中心に授業が行われると思っていたが、現実は違った。
もちろん、Rはそれ単独で授業がある。これは大変有り難いことだ。しかし、一番のメインとなる機械学習の授業がMatlabを利用して行われているため、Rの技術習得がやや劣後してしまうことと、Pythonに至っては自分で学ぶ必要があること、が新たな課題となった。次から次に課題ばかりが増えていく。

そこで、僅かではあるが、授業では取り扱わない他言語を地道に学んでいきたいと考えている。
コードは未熟であるし、間違いもあるかもしれない(間違っていた場合に指摘して頂けるとあり難い)。

まずは基本中の基本であると思われる、単純なforループと経過時間を計るコードについて、勉強してみた。
コードを載せるのは恥ずかしいが、自分が未熟なのだから仕方が無い。C++については、自身の勉強のために追加している。今から王道を追いかけるだけでは、私のような人間には価値はないだろうと判断したからである。その分、コストが増えてしまうのは仕方ない。


Matlabの場合

tic num=0;
for i=1:100000
 num=num+1;
end
num
toc

Rの場合

t0<-proc.time()
num=0
for(i in 1*100000){
num=num+1
}
t1<-proctime()
t1-t0


Pythonの場合

#coding*utf-8

import time
t0 =time.time()
num=0
for i in range(1*100001):
num +=num;

print num
t1=time.time()
elapsed=time =ti1-t0

C++の場合

#include<iostream>
#include<time.h>

int main(){
clock_t t0 = 	clock();

int num=0;
for(int i=1;i<100001;++i){
num +=1;
}

std::cout<<"the number n is "<<num<<std::endl;

int a=0;
int b=0;

while(a<15){
   a++;
}
    
std::cout<<"After this while loop, a is "<<a<<std::endl;


 if(a%15 == 0){
   std::cout<<" a can be divided by both 3 and 5"<<std::endl;
 }else if(a%5 == 0){
   std::cout<<" a can be divided by 5"<<std::endl;   
 }else if(a%3 == 0){
   std::cout<<" a can be divided by 3 "<<std::endl;
 }else{
   std::cout<<"a cannot be divided by 3 or 5"<<std::endl;
 }


clock_t t1 = clock();
double elapsed_time = t1-t0/CLOCKS_PER_SEC;

std::cout<<"elapsed time = "<<elapsed_time<<" and num = "<<num<<std::endl;

 return 0;
}