Numpy

2861 ワード

Numpy


なぜ
  • Numpyを使うのか
    -リストは様々な資料型の要素であってもよく、np配列(endarray)は1つの資料型の要素でしかない.
    -numpyはlistとは異なります.演算できるからです.
    -npアレイは、ソースファイルを直接置き換えることでメモリ効率を向上
  • Numpyアレイの作成
    ①array関数の使用
    ②ランダムモジュールの使用
    ③arange関数の使用
    Ex.1 array関数の使用
    ```
    import numpy as np
    #--------------------------
    a = [1, 2, 3, 4]
    b = [4, 5, 6, 7]
    #--------------------------
    numpy_a = np.array(a)
    numpy_b = np.array(b)
    #--------------------------
    sum_ = numpy_a + numpy_b
    sum_  	    # [5 7 9 11] .. 쉼표 없음 주의
    type(sum_)  #numpy.ndarray
    ```
    Ex.②ランダムモジュールの使用
    ```
    import numpy as np
    #--------------------------
    a = np.random.rand(5)                      # 0 < n < 1 사이의 수 5개 random하게
    b = np.random.randint(1, 10, 5)            # 1 <= n < 10 사이의 정수 5개
    c = np.random.randn(10)                    # 정규분포에 해당하는 값 10개
    d = np.random.randn(3, 5)				   # 정규분포에 해당하는 값을 3행 5열 Matrix
    e = np.random.randint(1, 10, (3, 5))       # 1 <= n < 10 사이의 수 3행 5열 Matrix
    ```
  • Numpyアレイ初期化
    ①Zeros関数の使用:0に初期化、実数型
    ②ones関数の使用:実数型に初期化
    ③yee(n)関数を使う:n*n二次元配列、対角線部分を1にする
    ④arange関数の使用
    Ex.①Zeros関数の使用
    ```
    az = np.zeros(10)
    az  # [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
    ```
    Ex.②ones関数の使用
    ```
    ao = np.ones(10)
    ao  # [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
    ```
    Ex.③eye(n)関数の使用
    ```
    ae = np.eye(3)
    ae  # [[1. 0. 0.]
    	   [0. 1. 0.]
           [0. 0. 1.]]
    ```
    Ex.④arange関数を使用
    ```
    a = np.arange(10)				#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    b = np.arange(3, 7)				#array([3, 4, 5, 6])
    c = np.arange(0.1, 1.1, 0.1)    # start = 0.1, end = 1.1(not included), step = 0.1
    ```    
    Ex. etc....
    ```
    # 0과 1외의 다른 수로 초기화하기
    ao7 = np.ones(10) * 7      	#[7. 7. 7. 7. 7. 7. 7. 7. 7. 7.]
    az11 = np.zeros(10) + 11    #[11. 11. 11. 11. 11. 11. 11. 11. 11. 11.]
    af = np.full((7, 5), 23)    #7 * 5 Matrix를 23으로 초기화
    ```
  • Numpy array関数/属性
    ①ndim:ndarrayの次元を表す
    ②shape:法線の大きさを釘で表す
    ③size:カレンダー内の要素の総数
    ④dtype:ndarrayのデータ型
    ⑤T:カレンダーの行と列を変更する
    ⑥ reshape()/type()/astype()
    Ex.
    ```
    arr1 = np.array([1.0, 2, 3],
    			    [4, 5, 6]], dtype = np.int32)
    # -------- 함수 --------
    print(np.ndim(arr1))                  # 2
    print(np.shape(arr1))				  # (2, 3)
    # -------- 속성 --------
    print(arr1.ndim)   					  # 2
    print(arr1.shape)					  # (2, 3)
    print(arr1.size)        			  # 6
    print(arr1.dtype)      				  # int32
    # ---------------------
    arr1_1 = arr1.astype(np.float32)      #ndarray안에 있는 모든 요소들의 데이터 타입을 한번에 바꿔줘
    arr_r = np.arange(32).reshape(4, 8)   #4 * 8 Matrix로 reshpae
    ```
  • Numpy indexing/slicing