numpyの
基本的なデータ構造numpyの
np.array()関数、多次元リストを受け入れ緯度に対応する行列を返します
ベクター= np.array([1、2、3、4])
マトリックス= np.array([1、2、3]、[4、5、6]、[7、8、9])
特別行列:
np.zeros(第一次元の(サイズ、二次元のサイズ、...))は、すべてゼロ行列を初期化し、各次元のストレージサイズに、渡されたタプルを必要とします。
np.ones(第一次元の(サイズ、二次元のサイズ、...))は、完全な行列を初期化し、各次元のストレージサイズに、渡されたタプルを必要とします。
np.arange(開始、終了、ステップ)のシーケンスを作成します
サイズ*サイズのマトリックスを作成するためのnp.eye(サイズ)
np.linspace(ポイント、エンドポイント、列の長さを起動する)列番号フィニッシュライン補間長配列に始点からの長さを返します
np.logspaceは、いくつかの幾何学的な長さの端に記載されている塩基配列のインデックスから始まるインデックス番号の末尾の長さを返す(インデックス、終了インデックス、カラムの長さ、塩基=基数の数を開始します)
基本的な操作とプロパティnumpyの
行列に格納されるデータのタイプは、データ型属性の行列要素を返すDTYPEれる、同じでなければなりません
セキュリティ要素のデータ型を変更するasType(タイプ)メソッドを使用します。
ベクター= numpy.array([ "1"、 "2"、 "3"、 "4"])#[ '1' '2' '3'、4 '']
ベクター= vector.astype(フロート)#[1。2. 3. 4.]
各次元のサイズを返し、オブジェクトのマトリックス形状特性。
着信-1寸法の大きさは、逆推力装置のこの寸法が他の寸法の大きさに応じ場合RESHAPE(第一次元の(サイズ、二次元のサイズ、...))を使用して、アレイの形状を改質する方法を変更しますサイズ
マトリックス= np.arange(6).reshape(-1、3)#を与える[012] [345]
1次元ベクトルに引き込まれを高次元マトリックスのラヴェル()メソッドを使用し
マトリックス= np.arange(6).reshape(-1、3)
マトリックス= matrix.ravel()#の所与[012345]
numpyの支持マトリックスインデックスとスライスインデックス、およびリストのpythonに似ています
マトリックス= numpy.array([5,10,15]、[20,25,30]、[35,40,45]])
行列[:1] [102540]を与える#
行列[:、0:2]#を与える[510] [2025] [3540]
行列[1:3 ,: 2]#[] [2025] [3540]を得ます
numpyの行列の変形()とスライスだけビュー(ビュー)元の行列を変更し、新たな行列を返さない、新しいビューへの修正は、元のビューに適用されます
numpyの支持マトリックス比較演算子、元の行列ブール値行列と同じサイズを返し、対応するように決意した結果を格納します
プリント(マトリックス== 10)#1得到[FALSE TRUE FALSE] [FALSE FALSE FALSE] [FALSE FALSE FALSE]
プリント(マトリックス> 10)#1得到[[FALSE FALSE TRUE] [TRUE TRUE TRUE] [TRUE TRUE TRUE]]
そしてMATLAB同様に、行列は、インデックス行列との比較演算の結果であってもよいです
[51010] [101010] [101010]を]与える行列[行列> 10] = 10#
分(軸=寸法)、MAX(=軸寸法)、和(軸=次元)アレイの最小寸法のリターンを使用し、最大値を合計
マトリックス= np.arange(9).reshape((3,3))
matrix.min(軸= 1)#配列([0,3,6])
matrix.max(軸= 1)#アレイ([2,5,8])
matrix.sum(軸= 1)#アレイ([3、12、21])
シーケンス
numpy.sort(マトリックス、軸=寸法)は、新しい行列を返し、マトリックスが元を変更しないことに留意ソートする行列の次元に対応する行列を返します
numpy.argsort(マトリックス、軸=寸法)は、元の行列の位置インデックスに対応する各行列要素の後にソートを返します。
numpyの行列演算
加算と減算:
要素の位置に対応する行列減算、加算および減算の同じ寸法
A1 = np.array([20,30,40,50])#を与える[20304050]
A2 = np.arange(4)#を与える【0123】
A3 = A1と - A2#は与える[20293847]
このスカラー加算と減算の各要素のスカラー行列加算および減算、
A1 = np.array([20,30,40,50])#を与える[20304050]
A2 = A1-1#[19293949]を得ます
行列の乗算:
*行列演算子の同じ寸法を使用し、乗算結果の要素に対応する位置に格納されている新たな行列の同じ寸法を返します
マトリックス1.dotを用いて(マトリックス1)又はnp.dot(マトリックス1、マトリックス2)を算出したドットマトリクス
A = np.array([1,1]、[0,1])
B = np.array([2,0]、[3,4])
行列を乗算する位置番号に対応します
プリント(* b)は#[20] [04]]を得ます
どちらのバージョンでは、マトリックス#ドット
プリント(A.dot(B))#[54] [34]]を得ます
プリント(np.dot(A、B))#[54] [34]]を得ます
電力動作:行列のべき乗演算の各要素のために
A = np.range(5)
A = A ** 2位与える[014925]
行列モザイク:
タイル(マトリックス(複数の第1の次元、二次元比、...))を使用して行列の対応する寸法の倍数に対応する方法を拡張します
マトリックス= np.arange(2)
マトリックス= np.tile(マトリックス、(1,3))#[]は[010101]を得ます
マトリックス= np.tile(マトリックス、(3,1))#が得[01] [01] [01]
行列の転置、行列、反転
マトリックスのプロパティ.T転置の使用
(マトリックス)逆行列をnp.linalg.inv使用
マトリックスのnp.linalg.det(マトリックス)を使用し決定要因
マトリックス= np.arange(1,5).reshape(2,2)
行列の転置の#
プリント(matrix.T)#[13] [24]]を得ます
#逆行列
プリント(np.linalg.inv(マトリックス))#与える[-2。1] [-0.5 1.5]
#行列式
印刷(np.linalg.det(マトリックス))#GET -2.0000000000000004
パンダ
データを読むためのパンダ
read_csvパンダを使用してください()メソッドのcsvは、読み出しデータがデータフレームオブジェクトにパックされ、データを読み取ります。
food_info = pd.read_csv( "food_info.csv")
タイプ(food_info)#pandas.core.frame.DataFrame
各オブジェクトは、#データフレームは、オブジェクトがnumpyのと見られている含まれているfood_info.dtypes
food_info.columns.tolist()#すべてのカラム名を取得します
food_info.values.tolist()#はnp.arrayの形態として返します
パンダのデータショー
データフレームのヘッドは、オブジェクト(行数)ラインヘッドの前行の前の行の数、尾部(行数)の表示方法を表示するためのメソッドを呼び出します。
food_info.head()#第5行
food_info.head(3)#3ラインの前に
food_info.tail()5#表示行後
形状は、マトリクス状に返すデータフレームの呼び出し()メソッドをオブジェクト
food_info.shape番号(8618、36)
行の行番号で取られたオブジェクトLOC [列]プロパティを呼び出すデータフレームは、行の数は、数またはリストの整数であってもよいです
行数がint型の数値の場合、Seriesオブジェクトが返されます
リストとして行数は、データフレームのオブジェクトが返された場合
タイプ(food_info.loc [[0]])#1 pandas.core.frame.DataFrame
タイプ(food_info.loc [0])#pandas.core.series.Series
food_info.loc [3:5]
food_info.loc [[2,5,10]
データフレームオブジェクトのいくつかの列を返すように添字インデックスを使用して
インデックス値を渡す場合は、Seriesオブジェクトが返されます
インデックスリストを渡された場合は、データフレームのオブジェクトが返されます
ndb_col = food_info [ "NDB_No"]
zinc_copper_col = food_info [[ "Zinc_(MG)"、 "Copper_(MG)"]]
タイプ(ndb_col)#pandas.core.series.Series
タイプ(zinc_copper_col)#pandas.core.frame.DataFrame
パンダのデータ処理
加算、減算、乗算、除算のデータフレームのオブジェクトは、その要素のそれぞれの加算と減算と等価です
div_100 = food_info [ "Iron_(MG)"] / 100
add_100 = food_info [ "Iron_(MG)"] + 100
sub_100 = food_info [ "Iron_(MG)"] - 100
mult_100 = food_info [ "Iron_(MG)"]×100
例:加重指数を計算します
#スコア= 2 *(protein_(G)) - 0.75 *(Lipid_Tot_(G))
weighted_protein = food_info [ "Protein_(G)"] * 2
weighted_fat = -0.75 * food_info [ "Lipid_Tot_(G)"]
initial_rating = weighted_protein + weighted_fat
ほとんどが値、平均値取る:MAX()を、平均分()、()、パンダ自動的に削除不正な値が存在しません。
使用#maxは()の最大値をとります
max_calories = food_info [ "Energ_Kcal"]。MAX()
mean_calories = food_info [ "Energ_Kcal"]。(平均)
例:新しい行として正規化されたデータ及び
normalized_protein = food_info [ "Protein_(G)"] / [ "Protein_(G)"] food_info。MAX()
normalized_fat = food_info [ "Lipid_Tot_(G)"] / [ "Lipid_Tot_(G)"] food_info。MAX()
[ "Normalized_Protein"] = normalized_protein food_info
[ "Normalized_Fat"] = normalized_fat food_info
シーケンス
sort_value()メソッドのすべての行が値によって順序付けされています
sort_index()メソッドインデックスでソートされたすべての行
#第一引数:ソートキー
#インプレース:元のオブジェクトのための直接交換するかどうか
#昇順:昇順か
food_info.sort_values( "Sodium_(MG)"、インプレース=真)
food_info.sort_values( "Sodium_(MG)"、インプレース=真、昇順=偽)
ピボットテーブル
titanic_surival = pd.read_csv( "titanic_train.csv")
ピボットテーブルは、以下のパラメータをpivot_table()関数を生成使用します
インデックス:これまでのベンチマークとして、インデックスの統計情報を指定します
値:統計フィールドをインデックスすることができ、インデックスも一覧表示することができます
aggfunc:統計的方法は、フィールドの値が適用されるデフォルトは平均、すなわちnp.mean()
#異なるキャビンの統計的確率を救出
passenger_survival = titanic_surival.pivot_table(インデックス= "PCLASS"、値= "生き残った"、aggfunc = np.mean)
統計異なる年齢キャビン#
passenger_age = titanic_surival.pivot_table(インデックス= "PCLASS"、値= "生き残りました")
#統計総料理と救出各ポートの合計数
port_stats = titanic_surival.pivot_table(インデックス= "着手"、値= "向き"、 "生き残った"]、aggfunc = np.sum)
空の値が削除病院http://www.87554006.com/無錫婦人科を
NULL値を持つ行または列を削除するdropna()を使用し、パラメータは以下の通り
軸:カラム寸法、採取削除空の値0は、NULL可能削除行をフェッチ
サブセット:行サブセットフィールドNULL値を削除
#すべての空の列の値を削除し、軸= 1
drop_na_columns = titanic_surival.dropna(軸= 1)
#すべての[「年齢」や「セックス」フィールド]行NULL値を削除します。
new_titanic_survival = titanic_surival.dropna(軸= 0、サブセット= [ "年齢"、 "性別"])
再インデックス
再インデックスにreset_index方法を使用します
new_titanic_survival = titanic_surival.sort_values( "年齢"、昇順=偽)
#再インデックスに現在の注文に応じて設定されたデータは、元のインデックスの放棄をドロップ
titanic_reindexed = new_titanic_survival.reset_index(ドロップ=真)
適用(関数)メソッドのデータフレームのオブジェクトは、各関数のカスタム列データを実行することができる、その結果はシリーズオブジェクトにまとめます。
#各列の最初の100を返します。
デフhundredth_row(列):
#百の項目を抽出し
hundredth_item = column.loc [99]
hundredth_item戻ります
各フィールドのその位置から100#戻り、次の行がtitanic_surival.locと等価である[99]
hundredth_row = titanic_surival.apply(hundredth_row)
#各列のNULL値の数をカウント
デフnot_null_count(列):
column_null = pd.isnull(カラム)
ヌル=カラム[column_null]
LEN(null)を返します
#各フィールドはnullのため、その数を返します。
column_null_count = titanic_surival.apply(not_null_count)
各ラインの#PCLASSのフィールド符号化
デフwhich_class(行):
PCLASS =行[ "PCLASS"]
pd.isnull(PCLASS)の場合:
「不明」を返します
elifのPCLASS == 1:
リターン「ファーストクラス」
elifのPCLASS == 2:
リターン「二級」
elifのPCLASS == 3:
リターン「第三のクラス」
#各ラインのエンコーディングPCLASSフィールドを返します。
クラス= titanic_surival.apply(which_class、軸= 1)
基本的なデータ構造パンダ:データフレームとシリーズ
2次元マトリクス状に類似パンダとシリーズ1次元ベクトルに類似している二つの最も重要な構造、およびデータフレームのためのデータフレームシリーズ。
シリーズnumpyのは、データフレームは、シリーズのコレクションとして見ることができるオブジェクトのコレクションとして見ることができます
ファンダンゴ= pd.read_csv( 'fandango_score_comparison.csv')
シリーズを取得したデータフレームのインデックス値の#
series_film =ファンダンゴ[ 'FILM']
タイプ(series_film)#pandas.core.series.Series
シリーズは、()コンストラクタ生成Seriesオブジェクトを使用することができ、indexパラメータは、インデックスを指定します
パンダのインポートシリーズから
film_names =ファンダンゴ[「FILM」]。値#すべてのムービー名を取得
rt_scores = series_rt.values#GETすべてのスコア
インデックスへ#映画名、シリーズ構成映画のスコア
series_custom =シリーズ(rt_scores、インデックス= film_names)
#だから、映画という名前のインデックスに映画を見つけることができます
series_custom [[ '手先(2015)'、 'リヴァイアサン(2014)']
関数の引数としてのシリーズオブジェクトは、代替的ndarrayよいので底部は、直列np.ndarrayによって実現されます
np.add(series_custom、series_custom)
np.sin(series_custom)
np.max(series_custom)