본문 바로가기

Python/Build setting14

[Numpy]넘파이 shape 변경 Numpy array의 차원을 변경 및 재구조화할 때 reshape()의 함수를 사용하게 된다. reshape외에도 차원을 변경하기 위한 다양한 함수가 존재한다. 따라서 차원 재구조화를 위한 다양한 함수를 포스팅 해볼까한다. 먼저, 임의의 numpy array를 만든다. a = np.arange(24).reshape(2,3,4) print(a, a.shape) # 출력 [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] (2, 3, 4) reshape() 함수 a = a.reshape(4, -1) print(a, a.shape) # 출력 [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 .. 2022. 8. 30.
[Numpy]넘파이 연산(Broadcasting) Broadcasting은 numpy가 산술 연산을 수행 할 때 다른 모양의 배열로 작업 할 수있게 해주는 메커니즘이다. 더 작은 배열과 더 큰 배열이 있을 때 즉, 작은 배열을 여러 번 사용하여 더 큰 배열에서 연산을 수행하고자 할 때 사용한다. 그러나, broadcasting을 인지하지 못한 경우에도 사용될 경우 연산에 큰 오류를 범할 수 있다. 연산 자체는 가능하지만 원하는 값을 도출해낸 것이 아니고 원하는 값을 명확하게 알지 못할 때는 오류값임을 인지하기 어렵기 때문이다. Broadcasting은 어떤 원리도 작동이 되는지 아래의 코드로 확인해보자. 먼저, 행렬의 각 행에 상수 벡터를 추가하려 한다고 가정해보자. x = np.array([[1,2,3], [4,5,6], [7,8,9], [10,11,.. 2022. 8. 30.
[Numpy]넘파이 연산(sum) 넘파이 연산 중 sum 함수에서 axis 파라미터의 default 값은 None 이다. 그 의미는 axis를 지정하지 않으면 numpy array 안의 모든 요소를 더한 값이 나온다는 것이다. sum 함수(default) z = np.arange(1, 11).reshape(2, 5) print(z) # 출력 [[ 1 2 3 4 5] [ 6 7 8 9 10]] 먼저, 1부터 10까지 2행 5열의 2차원 배열을 가진 z를 생성한다. 생성된 z에 sum 함수를 적용해 그 출력을 확인하면 print(np.sum(z)) # 출력 55 모든 요소의 값을 더하여 출력값이 나온다. sum 함수(axis=n) 이제, axis 파라미터를 적용한 값을 확인해보자. sum1 = np.sum(z, axis=0) sum2 = n.. 2022. 8. 29.
[Numpy]넘파이 연산 넘파이 연산의 경우 기본적으로 elementwise operation을 따른다. 각 요소별로 계산이 된다는 뜻인데 이는 아래의 코드로 확인이 가능하다. 다음은 가장 기본 연산인 더하기, 빼기, 곱하기, 나누기 연산이다. # array 생성 x = np.array([[1,2], [3,4]], dtype=np.float64) y = np.array([[5,6], [7,8]], dtype=np.float64) print(x) print(y) # 출력 [[1. 2.] [3. 4.]] [[5. 6.] [7. 8.]] # 더하기 print(x + y) print(np.add(x, y)) # 출력 [[ 6. 8.] [10. 12.]] [[ 6. 8.] [10. 12.]] # 빼기 print(x - y) print(n.. 2022. 8. 29.