[Day2] Boostcamp AI-Tech


2021年8月3日
1週目Python Basic&AI Math
講座:Python 6からPython 7-2まで

1.学習内容の整理


今日の授業はnumpyとpandaの内容についてですが、実は以前コードしたときによく使われていてよく知っていた内容です.だから概念とあまり知らない部分を中心に簡単に述べます.

(1) numpy


numpyは主にn次元配列を処理するための種々の数学的および統計的関数を含むモジュールである.PythonのListとnumpyのカレンダーの最大の違いは、ダイナミックタイプがサポートされていないことです.すなわち,配列には1つのデータ型しか入れられない.したがって,根はCのarrayといえる.したがって、endarrayを宣言すると、他のdtypeを持つ要素がdtypeまたはdefaultを指定するfloatに自動的に変換されます.
test_matrix = [[1,2,3,4],[1,2,5,8]]
np.array(test_matrix).reshape(8,)
->array([1,2,3,4,1,2,5,8])
np.array(test_matrix).reshape(-1,2).shape
->(4,2)
reformeはdarrayの形状を変える関数であり,−1を加えると元の配列の大きさに基づいて数値を決定する.これはreformeが同じ要素数を維持しているためです.
np.arrange(start,end,step)
np.zeros(shape,dtype,order)
np.ones(shape,dtype,order)
np.empty(shape,dtype,order)
np.something_like(test_matrix)
おなじみの内容ですが、np.空は、指定した形状で空のカレンダーを生成する新しい関数です.ただし、メモリ初期化が行われていないため、以前に使用したメモリ値が含まれている可能性があります.
np.something likeは、与えられた配列と同じ形状の配列を作成し、somethingはzeroとoneを含むことができる.
np.eye(N, M, k, dtype)
np.diag(matrix, k)
np.eyeは対角線が1のN*M行列で、k値を指定すると対角線の開始column indexを指定できます.np.diagは行列の対角成分を抽出し配列,npとして導出した.eyeと同様に、k値に基づいて開始点を設定できます.
a=np.array([1,2,3])
b=np.array([2,3,4])
np.vstack((a,b))


a = np.array([[1], [2], [3]])
b = np.array([[2], [3], [4]])
np.hstack((a,b))

a=np.array([1,2,3])
b=np.array([2,3,4])
np.concatenate((a,b), axis=0)

a = np.array([[1,2], [3,4]])
b = np.array([[5,6]])
np.concatenate((a,b.T), axis=1)

a = np.arrange(10)
np.any(a>5), np.any(a<0)
->True, False
np.all(a>5), np.all(a<10)
->False, True
np.where(condition,TRUE,FALSE)
anyおよびallは、アレイ内で条件を満たす要素に基づいて真値および偽値を与える.whereは、条件を満たす要素がTRUEで指定された値を出力し、条件を満たす要素がFALSEで指定された値を出力しない配列を出力する.
test_array = np.array([1,4,0,2,3,8,9,7], float)
test_array[test_array >3]
->array([1., 0., 2.])

a = np.array([2,4,6,8], float)
b = np.array([0,0,1,3,2,1], int) #반드시 integer로 선언
a[b]
->array([2., 2., 4., 8., 6., 4.])
a.take(b)
->array([2., 2., 4., 8., 6., 4.])
上のコードはbooleanindexと呼ばれ、indexにconditionを加え、対応する配列だけを抽出します.次のコードをフラワーインデックスと呼び、他の整数配列からターゲット配列の要素を抽出して新しい配列を作成します.a[b,c]の方法により,マトリクス形式のデータも参照できる.

(2) pandas


構造化データの処理をサポートし、データ処理、統計分析などの機能をサポートするスプレッドシート処理モジュールd.

-Series


numpyはcolumn vectorを表すオブジェクトとして機能する.endarrayのサブクラスです.以下に声明する.
list_data = [1,2,3,4,5]
list_name = ["a","b","c","d","e"]
example_obj = Series(data = list_data, index=list_name, dtype=np.float32, name="example_data")
indexに配列を加えてdataをマッチングすることもでき、index配列に基づいてシーケンスが生成されるので、dataが欠けているか、indexに対応するdataがない場合はNaN値が生成されます.

-Dataframe


各カラムをキーとして、データの配列を値のdictionaryタイプとして、read csvなどの関数として使用することもできます.次のコードを使用します.
df = pd.DataFrame(raw_data, columns= [ ~~~~~] )
DataFrameでは、loc関数はインデックス名を持つインスタンスを抽出するために使用され、iloc関数はインデックス番号の位置を持つインスタンスを抽出するために使用されます.deldf[「column name」]で特定のカラムを削除することもできます.そしてdfdrop(index number)を使用して、index numberの位置にあるインスタンスを削除できます.axis=1を指定すると、クリアカラムと同じロールを実行することもできます.

-series, dataframe operation


seriesはindexとdataframeをindexとcolumnの両方を考慮し、適用されないindexまたは(index,column)データにはNaN値が埋め込まれます.NAN値は、fill valueパラメータで異なる値で入力できます.

-lambda, map, apply

s1 = Series(np.arange(10))
s1.map(lambda x: x**2)
df.column.replace(~~~)
map関数またはreplace関数を使用して、カラム内のデータを変換します.また,lambda関数をfと定義するとdfとなる.apply(f)も使用できます.

-pandas built-in functions


df.describe()は、データ統計を表示する関数です.df.Unique()は、特定のカラムの一意の値のリスト、dfを返します.sort values(columns、昇順)は、そのcolumnを昇順するか否かに応じて並べ替え、それに応じて順序を変更する.
それ以外の内容は、詳しく知るよりも、その時の状況を参考にしてみましょう.

2.課題の進行


現在,テキストプリプロセッシングの課題3号が解決されている.今日はデジタル野球課題4号、モールスコード課題5号が公開されました.特に困難というよりは,様々な例外処理や条件に合った関数を実現する課題であり,時間さえかければ完全に解決できる.夜から4番課題を解決する予定です.

3.ピアセッション


沈在彬はnumpy darrayのアドレスが変わったようだと質問し、確認の結果、同じ配列の特定のインデックスを参照するたびにアドレスが変わることを確認した.numpyはc言語に基づいており,c言語の配列アドレスは固定されており,インデックスごとのメモリサイズは固定されているため,アドレスも一貫した間隔で配列されていることは理解できない.この部分は金曜日の補習授業で指導者に聞く計画だ.
水曜日に「ピア・セッションが開かれている」というアクティビティがあり、ピア・セッションをコミットさせてくれたので、ピア・セッションを作成しました.和やかに見えるジョー.

4.終了


ファンダスとナム派は重要だが、すべてを熟知するには数が多すぎる.参考にしたほうがいいと思います.整理学習の過程で、感覚量が多すぎて、内容に時間を浪費した.