python Numpyライブラリのndarray作成と基本プロパティ

28275 ワード

Numpy
Numpy Numpyはpythonの中の科学計算用のライブラリで、pandasのようにnumpyを使用する数学と科学計算パッケージの基礎です.python科学計算やデータ分析をよりよく学ぶためにはnumpyを身につける必要がある.
Numpy機能
  • Numpyの主な機能の1つは、配列およびマトリクス
  • を操作するために使用される
  • Numpyは科学計算、深さ学習などのハイエンド分野の必須ツール
  • である.
  • Numpyは多くの数学関数を含み、線形代数、フーリエ変換、乱数生成
  • などの多くの数学分野をカバーしている.
  • Numpyは、いくつかの商用数学ソフトウェアに取って代わることができる.Matlabインタラクティブ環境、Python+Numpy=Matlab
  • Numpyベース
    Ndarray
  • 同類要素からなる多次元配列
  • 各ndarrayは1つのdtypeタイプNdarrayのみ
  • を作成する
  • np.Array作成
  • >>>import numpy as np      #  numpy
    >>>a = [1,2,3,4,5,6]            #      
    >>>b = np.array(a)
    >>>print(b)
    >[1,2,3,4,5,6]
    >>>c = [[1,2,3],[4,5,6]]         #      
    >>>d = np.array(c)
    >>>print(d)
    >[[1,2,3]
        [4,5,6]]
    
  • np.zerosはサイズの全0配列を指定します.注:最初のパラメータは、(3,4)
  • などのサイズを指定するメタグループです.
    >>>b = np.zeros((3,4),dtype=np.int32)
    >>>print(b)
    >[[0 0 0 0]
     [0 0 0 0]
     [0 0 0 0]]
    
  • np.zeros_likeはマトリクスcと同じサイズの要素が0多次元配列
  • を生成する
    >>>c = np.arange(1,8,2,dtype=np.int32).reshape((2,2))
    >>>d = np.zeros_like(c)
    >>>print(d)
    >[[0 0]
     [0 0]]
    
  • np.onesはサイズの全1配列を指定します.注:最初のパラメータは、(3,4)
  • などのサイズを指定するメタグループです.
    >>>b = np.ones((3,4),dtype=np.int64)
    >>>print(b)
    >[[1 1 1 1]
     [1 1 1 1]
     [1 1 1 1]]
    
  • np.ones_like生成マトリクスcと同じサイズの要素は1多次元配列
  • である.
    >>>c = np.arange(1,8,2,dtype=np.int32).reshape((2,2))
    >>>d = np.ones_like(c)
    >>>print(d)
    >[[1 1]
     [1 1]]
    
  • np.Empty初期化配列は、常に全0を返すのではなく、初期のランダム値(メモリ内のランダム値)
  • を返す場合がある.
    >>>b = np.empty((3,4))
    >>>print(b)
    >[[5.e-324 5.e-324 5.e-324 5.e-324]
     [5.e-324 5.e-324 5.e-324 5.e-324]
     [5.e-324 5.e-324 5.e-324 5.e-324]]
    
  • np.arang arangはarrayとrangeの結合に相当し、最初の3つのパラメータはrangeと同じように(start,end,ステップ長)1次元ndarray配列を作成し、reshapeと連用されることが多く、reshape()は配列の次元数を再調整します.
  • >>>c = np.arange(2,10,2,dtype=np.int32)
    >>>print(c)
    >[2 4 6 8]
    >>>d = np.arange(1,8,2,dtype=np.int32).reshape((2,2))
    >>>print(d)
    >[[1 3]
     [5 7]]
    
  • np.linspace linspace関数は、開始値、終了値、要素の個数を指定することによって1次元配列を作成し、通常reshapeと連用して配列形状
  • を変更する.
    >>>b = np.linspace(1,20,10)
    >>>print(b)
    >[ 1.          3.11111111  5.22222222  7.33333333  9.44444444 11.55555556
     13.66666667 15.77777778 17.88888889 20.        ]
    
  • np.logspace logspace関数はlinspaceと似ていますが、等比数列
  • を作成します.
    >>>b = np.logspace(1,20,10)
    >>>print(b)
    >[1.00000000e+01 1.29154967e+03 1.66810054e+05 2.15443469e+07
     2.78255940e+09 3.59381366e+11 4.64158883e+13 5.99484250e+15
     7.74263683e+17 1.00000000e+20]
    
  • np.asarrayはpythonのlistとメタグループをnumpyのndarray
  • に変換する
    >>>c = [1,2,3,4,5,6]
    >>>b = np.asarray(c)
    >>>print(b)
    >>>print(type(b))
    >[1 2 3 4 5 6]
    <class 'numpy.ndarray'>
    

    Ndarrayの基本特性
  • ndim配列の次元
  • を表示
  • shape配列の形状サイズを表示
  • size配列を表示する要素の個数
  • dtype配列を表示する要素タイプ
  • type配列のタイプを表示し、ndarray
  • を返します.
  • itemsize配列要素のバイトサイズ
  • を表示
  • data実際の配列要素のバッファアドレス
  • を表示
  • flat配列要素を表示する反復器
  • >>>import numpy as np
    >>>a = np.array([[1,2,3],[4,5,6]])        #    
    >>>print(a.ndim)                                #      
    >2
    >>>print(a.shape)                              #        
    >(2,3)
    >>>print(a.size)                                 #        
    >6
    >>>print(a.dtype)                              #        
    >int32
    >>>print(type(a))                               #      
    ><class 'numpy.ndarray'>
    >>>print(a.itemsize)                          #          
    >4
    >>>print(a.data)                                #              
    ><memory at 0x000001AEED4D8120>
    >>>print(a.flat)                                   #          
    ><numpy.flatiter object at 0x000001AEEC4F72F0>
    

    Ndarrayのデータ型
  • boolブールタイプ
  • int:int 8int 16int 32int 64整数タイプ
  • uint:uint 8uint 16uint 32uint 64符号なし整数タイプ
  • float:float 16float 32float 64浮動小数点数タイプ
  • cpmplex:complex 64complex 128複数型
  • Ndarrayアクセス要素
  • 整数シーケンスを使用する:リスト、メタグループ
  • 整数シーケンスの要素は、下付きであってもよく、ブール値
  • であってもよい.
  • 整数シーケンスを下付き符号として用いて、配列が元の配列と共有するデータ空間
  • と一致しないことを得る.
  • ブールアクセスは配列
  • のみである.
    >>>x = np.arange(1,10,1)
    >>>a = x[[2,4,6]]
    >>>print(a)
    >[3 5 7]
    >>>b = x[x>5]
    >>>print(b)
    >[6 7 8 9]
    

    またnumpyのもっと多くの操作を更新しますよ!