2017년 2월 19일 일요일

[python] Qt4 With Python2.7 and Vertual Enviroment

1. conda update conda
2.  conda create -n qtEnv python=2.7 anaconda
3. activate qtEnv 

---------------------------------------------------
next, we need to change qtpy 5 -> qtpy4
---------------------------------------------------

4. conda install -c anaconda pyqt=4.11.4

Done! go to visual studio and add python env 

[c#] Data Split

        public void SplitTrain_Test(float[][] data_x , float[] label , double trainSize ) {
            int[] idx = new int[label.Length];
            Parallel.For( 0 , label.Length , i => {
                idx[i] = i;
            } );

            Random rnd = new Random();
            int trainNum = (int)(label.Length *trainSize);
            int[] rndIdx   = idx.OrderBy(x => rnd.Next()).ToArray();
            int[] trainIdx = idx.Take(trainNum).ToArray();
            int[] testIdx  = idx.Skip(trainNum).ToArray();
        }

[C#] Linq Orderby

orderby 는 각 요소들에서 조건을 뽑아내서 서로 비교한다.

예를들어

orderby(x => x ) : 숫자 요소일시 1 ,2 ,3 순으로 정렬 / 문자시 알파벳순

orderby(x => x%2 ) : 숫자 요소일시 2,4,8 ... 1,3,5 순으로 정렬

여기서 만약 두 요소의 비교조건 값이 같을경우는 정렬이 안된다. 이떄 thenby 쓰면 된다.

2017년 2월 6일 월요일

[C#] Closure 쓰는 이점

1. 원하는때 계산이 가능 : Lazy 개념

2.  파라미터를 킵해놓을 수 있기 때문에 병렬처리하는데 관리가 쉬워진다.

3. 파라미터의 보존이 가능해, 파라미터로 사용된 데이터가 바뀌고, 함수는 바뀌기전 파라미터를 사용해야 한다면,  Closure 로 쉽게 처리가 가능

Ex)

Func method1( int input   ){

    return new Func((a,b)=>{
        return input + a + b;

    });

}

라고 하자.

어떤 시퀀스가

int x = 13;
int y = 0.1;
List> templist = new List>();
for( i => range(0 ,10)){
    templist.add( method1(i*x) );
}
z = 0
for( i => range(0 ,10)){
    z += templist[i]( y, y*i  );
}

별 의미 없는 것이지만, 이런식으로 응용을 할 수 있다.

어떤 일정한 패턴의 계산 값들을 바로 계산하지 않고,  특정 시점에서 계산한다던지..

[C#] Linq Exampled

var output1 = input.Select(x=>x*10);

var output2 = input.Where( x => x > 20);


var output3 = output1.Aggregate((x,y)=> x+y);


var output3 = output1.Aggregate(100,(x,y)=> x+y); // 첫 요소가 100으로 추가된다.

2017년 1월 22일 일요일

[Env] VS , Chrome Shortcut

마우스 중앙버튼 Alt + f4
크롬 및 익스플로러 backward forward 를 Ctrl+- // Ctrl+0 으로(Vs와 같게)
마우스 앞뒤버튼 VS와 같게 매크로

2017년 1월 12일 목요일

[python] numpy axis

axis는 n차원시 n번째 있는게 axis-n 이 된다. 즉
[
        [1 ,1 ,1],
        [10 ,20 ,30],
]

axis 1은
[
  func([1,1,1] ),
  func([10,20,30)
]

이 된다.

axis 0은
[
  func([1,10] ),
  func([2,20] ),
  func([3,30] ),
]

이 된다.



axis0이라 함은 , axis1이 없다고 생각해

[
  1,
  10
]

만 있다고 생각하고 한다. 이런게 총 3개 있는것이다.
[
  1,
  10
]


[
  2,
  20
]


[
  3,
  30
]

2차원 이상은 다음을 돌려보자

a = [[
        [1 ,1 ,1],
        [10 ,20 ,30],
    ],
     [
        [1 ,1 ,1],
        [10 ,20 ,30],
    ],
     ]

temp = [np.var(a,0)]

temp = np.asarray(temp)
print temp