Ndarray(1次元)の生成と要素の追加、削除、コピー

 この記事は個人の実行記録Noteです。個人的な経験からPythonの基本を初心の方向けに紹介します。

§ プログラミング >変数と演算 >Ndarray(1次元)


 Ndarray はパッケージnumpy の配列管理するコンテナ。numpy は科学計算に強く、関数計算やベクトル計算のメソッドと配列データの一括計算などが出来る。Python に標準装備のタプルやリストでは苦手な多量の計算処理をサポートしてくれます。 Ndarray での処理は多様で、ここにはNdarray の基本的な生成方法と配列への追加や削除、コピーについて記載しています。

* 1次元のNdarrayを生成する

 Ndarray はnumpy をプログラム中インポートします(事前にパッケージのPCインストールが必要。使用しているプラットホームによっては標準的にインポートされている場合もあります)。 ここでは、np をnumpyモジュールの略称名にしています。

 プログラミングでは、様々な生成方法の中から、目的の配列またはそれに近い配列を最初に作成することになります。 

§ 基本的には、リストまたはタプルからNdarrayを生成します。 

 Ndarray は基本的にmumpy.array() 又はnp.array() の引数にリスト(又はタプル)を引き渡して生成します。 タプルのカッコ記号 ( ) は引数の ( ) と同じ記号なので、ここでの例示はリストの[ ] を使いますが、タプルの()でも可能です。 

【表1参照】 
・空リスト np.array([]) :要素を入れていない空リストを引数にすると、空のNdarrayになる。 
・1要素 np.array([要素値]) :要素が1つだけのリストを引数にすると、1要素のNdarrayになる。 
・複数要素 np.array([要素値, 要素値, …,要素値]) :複数の値のカンマ区切りリストを引数にすると、複数要素のNdarrayになる。
・複数文字列 np.array(["文字","文字",…,"文字"]) :複数文字列のカンマ区切りリストを引数にすると、複数の文字列のNdarrayになる。
・複数論理変数 np.array([論理値,論理値,…,論理値]) :複数の論理値(TrueまたはFalse)のカンマ区切りリストを引数にすると、複数の論理変数のNdarrayになる。
・変数型の混在 np.array([数値,"文字",…,論理値]) :異なる変数タイプから成るリストを引数にすると、複数文字列のNdarrayになる。Ndarray ではタイプの混在はない(リストとの相違点)。 
・内包表記 np.array([ 式 for 変数 in range(配列)]) :for 機能を持った内包表記を直接的にNdarrayの引例にすることが出来る。
・演算子 + , *  np.array(リスト*繰返し数+リスト) :リスト(タプル)の演算子による生成を引例にする。

§ numpy メソッドでNdarray を生成します。 

 Ndarray にはよく使う基本的な配列を自動的に作成するメソッドがあります。

【表2参照】
・要素値空の配列 np.empty(要素数) :初期値が空(未定)の配列。配列の要素数を指定して生成できる。未定の値はPC側が偶発的な値を決める。
・要素値0の配列 np.zeros(要素数) :初期値0の配列。配列の要素数を指定して生成できる。
・要素値1の配列 np.ones(要素数) :初期値1の配列。配列の要素数を指定して生成できる。
・指定値の配列 np.full(要素数, 値) :初期値1の配列。配列の要素数を指定して生成できる。
・range関数の変換 np.array(range(始, 終, step)) :range 関数で生成される配列を引数に設定する。
・連続数(等差)関数 np.arange(始, 終, step) :連続等間隔配列の生成メソッド(始まりと終わり、間隔のステップを決める)range 関数と同様に、始めの値からステップ単位での値を作る。終わりの値は含まれない。
・等間隔の分散値 np.linspace(始, 終, 要素数) :連続等間隔配列の生成メソッド(始まりと終わり、要素数を決める)。始めの値から終わりの値までを等間隔に区切る要素数の配列。終わりの値は含まれる。
・等指数間隔の分散値 np.logspace(始, 終, 要素数) :連続等指数間隔配列の生成メソッド(始まりと終わり、要素数を決める)。指数値が始めの値から指数が終わりの値までを指数値を等間隔に区切る要素数の配列。終わりの値は含まれる。指数の底も指定可能(デフォルトが10)。

§ 既存のNdarrayを基に、コピー・追加・並替えで新しいNdarray を生成。 

 既に使用しているNdarray を基にして、別のNdarrayを作る事が出来ますにはよく使う基本的な配列を自動的に作成するメソッドがあります。

【表3参照】

・コピー 既存配列.copy() :copyメソッドで同じ値を持つ配列を作る。
・代入 既存配列[:] :元の配列要素を全指定して新規配列にする。 (※要素指定の[:]がないと、新規配列ではなく、2つの変数名が同じNdarrayに関係付けられる)
・Ndarray 再変換 np.array(既存配列) :既存配列をarray( )メソッドで再度、配列に変換する。
・要素を追加 np.append(既存配列, 追加値) 
:後ろに追加される。
・配列を結合 np.concatenate([既存配列,配列]) :既存配列に配列を結合します。1次配列ではappendと同等。
・要素を挿入 np.insert(既存配列, インデックス, 追加値) :指定のインデックスの位置に挿入される。
・位置で削除 A = np.delete(既存配列, 削除インデックス) : インデックスで指定した位置の要素を削除する。
・タイル詰め np.tile(既存配列, 回数) :既存配列を回数文繰り返す
・逆順にする 既存配列[::-1] 
:配列の順番を逆にする。
・ソート〈並替え〉 np.sort(既存配列) :配列を降順に並び替える。 昇順にしたい時は逆順の[::-1]と組み合わせる。


〇 関連する公開記事

 ・関連記事: リストの作成、要素の追加・削除、アクセスと変更
        タプル設定。タプルは変更不可の一括管理コンテナ
 ・他の記事: 定数と変数、リスト(コンテナ) そして、変数名と予約語


〆後書

  この記事は、Ndarray の生成方法だけになります。 整理してみたら色々な方法があるものだと再認識して、記事として1テーマとしました。 よく使うものは限定的になるが、簡単に早く作れるメソッドもあるので、これらの方法が有ることを覚えておいて、使い方はその都度調べるのが便利となるだろうと思われます。


IG.Python Note

PythonプログラミングのためのTips集です。 趣味のPythonプログラミングをしていると、必要なプログラミング情報を自分で取集することが必要になります。 集めた情報を整理しておくと便利なので、個人的な学習メモとして記録を作りました。

0コメント

  • 1000 / 1000