Pythonデータ処理学習プロセス


文書ディレクトリ
  • 第一歩:基礎IO操作
  • テキストオブジェクト読み書き
  • 画像読み書き
  • csvファイルの読み書き
  • 第2ステップ:より効率的なデータ処理方法を把握する
  • numpyこの利器を持つ価値がある
  • 基本データフォーマットと操作
  • numpy配列
  • numpy配列はどこが便利ですか?
  • np配列の作成:
  • pandasはあなたにデータを抽出させてから難しくない
  • 基礎処理
  • pandasコアデータ構造
  • 基本操作
  • 演算
  • 画図
  • IO操作
  • 上級処理
  • ステップ3:データ間を遊走し、統計的な方法でデータ間の法則を探索する
  • リニア回帰
  • オーバーフィット・アンダーフィット
  • 嶺回帰
  • 論理回帰
  • K-meansクラスタリング
  • 第四歩:深い勉強の旅
  • ステップ1:基礎IO操作
    テキストオブジェクトの読み書き
    書類の読み書きの基礎方法を把握する必要があります.
    基本ファイルの開き方:
    fp = open('file_name', 'mode')  #            
    ...
    ...
    fp.close()
    

    modeはオプションで、異なる効果があります.
        'r'       open for reading (default)
        'w'       open for writing, truncating the file first
        'x'       create a new file and open it for writing
        'a'       open for writing, appending to the end of the file if it exists
        'b'       binary mode
        't'       text mode (default)
        '+'       open a disk file for updating (reading and writing)
    
    

    また、この方法でファイルオブジェクトを作成することもできます.
    >>> with open('workfile', 'r') as f:
    ...     read_data = f.read()
    >>> f.closed
    True
    

    ファイルオブジェクトを開くと、読み取り/書き込みが可能になります.
    f.read() #         
    f.read(4) #      
    
    f.write(astr)
    

    反復ファイルの内容:
    >>> for line in f.readlines():
    ...     print(line, end='')
    ...
             
             
      
    

    あるいは、このように反復することで、より便利になります.
    >>> for line in f:
    ...     print(line, end='')
    ...
             
             
      
    

    pythonオブジェクトのシーケンス化:ベースのデータ構造であれば、その内容もテキストで見ることができます.jsonシーケンス化します.複雑なpythonオブジェクトであれば、pickleでシーケンス化します.
    例:
    #        
    with open('a_list.txt', 'w') as f:
    	a_list = [1,2,3,4]
    	json.dump(a_list, f)
    #    a_list                  
    #              ,    a_list    
    #json.dump(ensure_ascii=True)   ensure_ascii=True,                 ‘  ’。  True   。
    
    #         
    with open('a_list.txt') as f:
    	the_list = json.load(f)
    

    jsonには.loads()dumps()という方法もあり、文字列からpythonオブジェクトまで情報を往復変換することができます.
    複雑なオブジェクト、例えばfunctionオブジェクトは、ローカルに格納しても何も見えず、jsonでは格納できません.jsonの存在は、さまざまなプログラミング言語でデータを交換しやすいためです.テキストでデータ交換ができなければjson存在の原則に違反します.だから私たちはpickleこのライブラリが必要です.pickleの使用方法はjsonと同様であり、これ以上説明しない.
    画像の読み書き
    画像データの処理にはPIL.Imageこのライブラリが必要です.このライブラリで画像を読み取り、修正し、作成することもできます.このライブラリをインストールpip install Image
    #    ,         :
    from PIL import Image
    #      
    img = Image.open('test.png')
    #      、  
    h, w = img.size
    #             :
    img.show()
    #       :
    img.filename
    #       :
    img.getpixel((heighth, weighth))
    #     RGB   ,             :(62, 131, 200)
    #        ,       
    #      ,   0  1
    
    # RGB         
    img_gray = img.convert('L') #       
    tab = [0 if i < 160 else 1 for i in range(256)]
    black_white_img = img_gray.point(tab) #         
    
    #     :
    img.save('file_name.png')
    

    csvファイルの読み書き
    python内蔵csvモジュールを使用する必要があります
    csv.reader(iterable, delimiter=',')
    csv.writer(fileobj, delimiter=',')
    #    、    ,        csv   。
    

    csvモジュールは単純な読み取り、遍歴にのみ適する.csvファイルは、複雑なフィルタリング、修正作業には向いていません.後者のような仕事はpandasという神器に任せる.だからここはしばらく持っていました.
    第二歩:より効率的なデータ処理方法を把握する
    numpyこの利器は君が持つ価値がある
    概要Numpyフレームワーク:
    基本データのフォーマットと操作
  • 基本整形:np.int8、np.int16、np.int32、np.int 64等
  • 基本浮動小数点型:np.float16、np.float32、np.float 64等
  • 加減乗除:np.add()、np.subtract()、np.multiply()、np.divide().またはそのまま+ - * /これらの記号を使ってもよい.

  • numpy配列
    numpyのコアはndarrayオブジェクトであり、python基本データ型をカプセル化したn次元配列である.numpy配列には、次のような特徴があります.
  • 作成したnumpy配列を変更できない
  • 1つのnumpy配列すべてのデータ型が同じ
  • numpy配列は多数のマトリクス演算方法を含む
  • numpy配列はどこが便利ですか?
    たとえば、2つの配列の位置合わせを計算します.
  • python配列実装:
  • a = [1, 2, 3]
    b = [4, 5, 6]
    ans = [i*j for i, j in zip(a, b)]
    
  • numpy配列実装:
  • a = np.array([1,2,3])
    b = np.array([4,5,6])
    ans = a*b
    

    np配列は計算を数学記号に近づけます!npの計算は、要素の1つではなく、npの配列に向いています.
    np配列のプロパティ:
  • ndarrary.dtype:要素タイプ
  • nparray.shape:配列の構造
  • nparray.size:元素個数
  • nparray.real:元素実部
  • nparray.imag:元素虚部
  • nparray.astype():要素タイプの変更
  • nparray.reshape():要素の構造を再修正しますが、修正後の要素の個数は変更できません
  • np配列を作成するには:
  • 単純配列作成
    np.array([1,2,3,4]).reshape((2,2)).astype(np.float)
    np.zeros(shape, dtype=float) #    
    np.ones(shape, dtype=float) #    
    np.eye(N, dtype=float) #    
    np.empty(shape, dtype=float) #  
    
  • ランダムマトリクスの作成
  • np.random.rand(axis1, axis2, axis3, …, axisn) uniform distribution over [0, 1)
  • np.random.ranint(low, high=None, size=None, dtype=l) uniform distribution over [low, high) of size
  • np.random.randn(axis1, axis2, axis3, …, axisn) standard normal distribution. u=0, sigma=1
  • np.random.random(size=None) uniform distribution over [0, 1)
  • np.random.random_integers(low, high=None, size=None) discrete uniform distribution over [low, hgih] of type np.int
  • 指定範囲に配列を作成
    np.arange(low, high, step=) #   ,  low,   high
    np.linsapce(low, high, num=) #   ,  low, high
    
  • 既存配列から新規配列を作成
    np.asarray(array, dtype=None) #      array   ,   array     
    np.empty_like(a) #   a          
    np.zeros_like(a) #   a           
    np.ones_like(a) #   a           
    
  • 複雑な配列を構成する配列全体の繰り返し
    np.tile(a, n) 
    #  a=array([1, 2, 3]),       3  ,  array([1, 2, 3, 1, 2, 3, 1, 2, 3])
    
    配列内の各要素の繰り返し
    np.repeat(a, 3)
      
    a.repeat(3)
    #  a=array([1, 2, 3]),       3  ,  array([1, 1, 1, 2, 2, 2, 3, 3, 3])
    
    配列のマージappend
    np.append([1,2,3],[[4,5,6],[7,8,9]])
    >>>array([1, 2, 3, 4, 5, 6, 7, 8, 9])
    np.append([[1,2,3]], [[4,5,6]], axis=0)
    >>>array([[1, 2, 3],
       [4, 5, 6]])
    np.append([[1,2,3]], [[4,5,6]], axis=1)
    >>>array([[1, 2, 3, 4, 5, 6]])
    
    concatenateはappendとほぼ似ているが、2つのマージ対象を1つのメタグループにマージしただけ
    np.concatenate(([[1,2,3]], [[4,5,6]]), axis=0)
    >>>array([[1, 2, 3],
       [4, 5, 6]])
    
    数グループ分割
  • pandasはあなたにデータを抽出させてから難しくありません.
    pandasとは何ですか.panel+data+analysis panel:パネルデータ-計量経済学matplotlibに基づいて、簡単な図面をnumpyに基づいて、計算の上で比較的に大きい優位性があって多種のタイプのファイルの読み書きをサポートします
    きほんしょり
    pandasコアデータ構造
    3つのデータ構造があります.
  • DataFrame DataFrameは、行インデックスと列インデックスがある2 Dテーブルに相当します.常用属性:
  • Panel
  • Series

  • きほんそうさ
    えんざん
    絵をかく
    IO操作
    高度な処理
    第三歩:データの間を泳いで、統計の方法でデータの間の法則を探求します
    せんけいかいき
    オーバーフィット
    嶺回帰
    ろんりかいふく
    K-meansクラスタリング
    第四歩:深い学習の旅