Pythonのnumpyモジュール学習

31863 ワード

Pythonのnumpyモジュール学習
Windowsシステム環境に基づいてnumpyモジュールを学習し、テストします.
  • Windows 10
  • PyCharm 2018.3.5 for Windows (exe)
  • python 3.6.8 Windows x86 executable installer

  • 1.numpy初期化配列と行列
  • numpy空の配列
  • を初期化
    import numpy as np
    a = np.array([])
    print(a.size) # size = 0
    
    b = np.array([], dtype=int)
    
  • numpyリストを用いて配列
  • を初期化する
    import numpy as np
    a = np.array([1,2,3]) #      3×1   
    print(np.shape(a)) # np.shape(a)=(3,)
    print(a.size) # size =3
    
  • numpyリストを用いてマトリクス
  • を初期化する
    import numpy as np
    a = np.array([[1,2,3],[2,3,4]]) #      2×3   
    print(np.shape(a)) # np.shape(a)=(2,3)
    print(a.size) # size =6
    
  • numpy生成要素値がすべて0の1次元配列
  • import numpy as np
    a = np.zeros(6) #      6 ,    0    
    print(np.shape(a)) # np.shape(a)=(6,)
    print(a.size) # size =6
    
  • numpy生成要素値がすべて1の一次元配列
  • import numpy as np
    a = np.ones(6) #      6 ,    1    
    print(np.shape(a)) # np.shape(a)=(6,)
    print(a.size) # size =6
    
  • numpy接合
  • import numpy as np
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    a = np.append(a, b) # a = [1, 2, 3, 4, 5, 6]
    

    2.numpyの出力
  • numpy出力ある行
  • import numpy as np
    data=np.arange(9).reshape(3,3)
    print(data[0]) #      
    
  • numpy出力ある列
  • import numpy as np
    data=np.arange(9).reshape(3,3)
    print(data[:, 0]) #      
    

    3.numpyはarrayの要素のindexを返します.
  • numpyはargwhere()関数を用いて
  • を実現する.
    import numpy as np
    data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 1]])
    target = 1
    target_index = np.argwhere(data == target)
    print(target_index)  #         
    print(np.shape(target_index))  # np.shape(target_index)=(2,2)
    
  • numpyはwhere()関数を用いて
  • を実現する.
    # data         array,    Series
    import numpy as np
    data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    index1 = np.where(data > 3)
    print(index1[0])  # [3 4 5 6 7 8]
    index2 = np.where((data > 3) & (data < 7))
    print(index2[0])  # [3 4 5]
    index3 = np.where((data > 3) & (data < 7), 1, 0)
    print(index3)  # [0 0 0 1 1 1 0 0 0]
    

    4.numpyマトリクススタックを実現
  • numpyはnpを利用する.hstack((a,b))水平スタック
  • を実現
    import numpy as np
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    b = np.array([[10,11,12],[14,15,16],[17,18,19]])
    
    #      ,               (    )
    c = np.hstack((a,b))
    print(c)
    #     
    # [[ 1  2  3 10 11 12]
    #  [ 4  5  6 14 15 16]
    #  [ 7  8  9 17 18 19]]
    
  • numpyはnpを利用する.vstack((a,b))垂直スタック
  • を実現
    import numpy as np
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    b = np.array([[10,11,12],[14,15,16],[17,18,19]])
    
    #      ,               (    )
    c = np.vstack((a,b))
    print(c)
    #     
    # [[ 1  2  3]
    #  [ 4  5  6]
    #  [ 7  8  9]
    #  [10 11 12]
    #  [14 15 16]
    #  [17 18 19]]
    

    5.numpyベクトルの各要素の出現回数をCounterで統計する
    from collections import Counter
    import numpy
    l = np.array([1, 1, 2, 3, 3, 3])
    count = Counter(l)   #  : 
    count_dict = dict(count)   #  : 
    print(count_dict)
    

    6.numpyによる行列の演算
  • 要素乗算
  • import numpy as np
    
    l = np.array([[1,2], [3,4]])
    print(np.multiply(a,b))
    # 1  4
    # 9 16
    
  • マトリックス乗算
  • # np.dot(a,b)   np.matmul(a,b)   a.dot(b)
    import numpy as np
    
    l = np.array([[1,2], [3,4]])
    print(l)
    print(np.dot(a, a))
    # 7  10
    # 15 22
    
  • 求逆行列
  • import numpy as np
    from numpy.linalg import *
    
    l = np.array([[1,2], [3,4]])
    print(l)
    print(inv(l))
    
  • 回転行列
  • を求める
    import numpy as np
    from numpy.linalg import *
    
    l = np.array([[1,2], [3,4]])
    print(l)
    print(l.transpose())
    
  • 行列を求める行列式
  • import numpy as np
    from numpy.linalg import *
    
    l = np.array([[1,2], [3,4]])
    print(l)
    print(det(l))
    
  • 行列の特徴値と特徴ベクトル
  • を求める
    import numpy as np
    from numpy.linalg import *
    
    l = np.array([[1,2], [3,4]])
    print(l)
    print(eig(l))
    
  • 線形方程式のグループ
  • を求めます
    import numpy as np
    from numpy.linalg import *
    
    l = np.array([[1,2], [3,4]])
    y = np.array([[6],[8]])
    print(l)
    print(solve(l,y))
    # 1X+2Y=6
    # 3X+4Y=8