본문 바로가기

numpy8

12.2 넘파이처럼 텐서플로 사용하기 기본적으로 텐서플로는 텐서(tensor)를 사용한다. 텐서는 차원에 따라 스칼라 혹은 배열이 될 수 있다. 그리고, 텐서는 넘파이 배열(ndarray)과 유사하기 때문에 넘파이 패키지가 익숙하면 좋다. 텐서의 생성 텐서를 생성하기 위해 tf.constant() 함수에 텐서로 만들기 원하는 값을 인자로 전달하면 된다. import tensorflow as tf tf.constant([1, 2, 3]) >>> # 다차원 배열 tf.constant([[1, 2, 3], [4, 5, 6]]) >>> # 데이터 타입 명시 tf.constant([1, 2, 3, 4, 5, 6], dtype=tf.float32) >>> 텐서의 인덱싱 텐서는 넘파이 배열 혹은 파이썬의 리스트처럼 대괄호를 통해 인덱스 참조가 가능하다... 2022. 3. 21.
# 6. np.meshgrid 이번 포스트에서는 격자형 그리드를 생성하는 방법에 대해 포스팅한다. 격자형 그리드란 공간에서 일정한 간격으로 포인트를 찍은 것을 말한다. 격자형 그리드를 통해 특정 데이터 공간을 명확하게 그릴 수 있다. 이를 테면 아래와 같이 그릴 수 있다. x = np.linspace(-3, 3, 7) # array([-3., -2., -1., 0., 1., 2., 3.]) y = np.linspace(-2, 2, 5) # array([-2., -1., 0., 1., 2.]) x, y = np.meshgrid(x, y) print(x.shape, y.shape) >>> (5, 7) (5, 7) x와 y를 일정한 간격으로 포인트를 찍는 함수인 np.linspace를 호출하여 구성했다. 주어진 x, y에 대하여 np.me.. 2022. 3. 17.
# 5. Universal functions 이번 포스트에서는 universal function에 대해 알아볼 것이다. 넘파이에서는 np.sin, np.cos, np.exp와 같은 친숙한 수학적 함수들을 제공한다. 넘파이에서는 이러한 함수들을 universal function(범용 함수)이라고 부른다. 이러한 함수들은 피연산자 배열의 원소 단위로 연산이 수행되며, 결과를 새로운 행렬로 반환한다. B = np.arange(3) B >>> array([0, 1, 2]) np.exp(B) >>> array([1. , 2.71828183, 7.3890561 ]) np.sqrt(B) >>> array([0. , 1. , 1.41421356]) C = np.array([2., -1., 4.]) np.add(B, C) >>> array([2., 0., 6.]).. 2022. 2. 25.
# 4. Basic Operations 이번 포스트에서는 기본적인 넘파이 연산들에 대해 다뤄볼 것이다. a = np.array([20, 30, 40, 50]) b = np.arange(4) c = a - b # 1 Operation print(b) >>> array([0, 1, 2, 3]) # 2 Operation print(c) >>> array([20, 29, 38, 47]) # 3 Operation print(b**2) >>> array([0, 1, 4, 9]) # 4 Operation print(10 * np.sin(a)) >>> array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854]) # 5 Operation print(a >> array([ True, True, False.. 2022. 2. 19.
# 3. Printing Arrays 이번 포스트에서는 넘파이 배열을 출력하고 읽는 방법에 대해 다뤄보려고 한다. 넘파이 배열의 차원이 높아질수록 읽기 어려워진다. 그러나 다음과 같은 읽는 방법을 따르면 문제가 없을 것이다. 마지막 축은 왼쪽에서 오른쪽으로 출력된다. 두 번째 ~ 마지막 배열들은 위에서 아래로 출력된다. 1차원 배열은 가로로 출력된다. 2차원 배열은 행렬로 출력된다. 3차원 배열은 행렬의 리스트로 출력된다. # 1d array a = np.arange(6) print(a) >>> [0 1 2 3 4 5] # 2d array b = np.arange(12).reshape(4, 3) print(b) >>> [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11]] # 3d array c = np.arange(24)... 2022. 2. 19.
# 2. np.random 이번 포스트에서는 numpy 패키지중 랜덤으로 배열을 생성하는 메소드들에 대해 알아볼 것이다. np.random.rand 이 메소드의 인자는 정수들을 여러개 나열할 수 있다. (가변인자) 이 정수들은 생성될 배열의 차원이 된다. 각 요소들은 균일분포에서 0~1 사이의 값들로 이루어져 있다. import numpy as np r = np.random.rand(4, 3, 3) print(r.shape) print(r) >> (4, 3, 3) [[[0.24380173 0.55585745 0.68894391] [0.73212786 0.32187644 0.6370955 ] [0.19283783 0.32313824 0.54533787]] [[0.10738025 0.06398702 0.82363365] [0.2943.. 2022. 1. 17.