AIモデル作成で使用するPythonのメソッド

目次
1.NumPyのメソッド
(1)np.array()
(2)np.zeros()
2.ndarray(N-dimensional arrayの略)
(1)ndarray.shape
(2)ndarray.dtype
(3)ndarray.reshape()
(4)ndarray.flatten()
(5)ndarray.sum()
(6)ndarray.mean()
(7)ndarray.max() と ndarray.min()
(8)ndarray.dot()
(9) ndarray.transpose()
3.ベクトルの類似性の評価
3.1 内積
(1)行ベクトル間の内積
(2)列ベクトル間の内積
3.2 コサイン類似度
4.コレクションデータ型とメソッド
4.1 リスト (List)
4.2 タプル (Tuple)
4.3 セット (Set)
4.4 ディクショナリ (Dictionary)
4.5 デフォルトディクショナリ (defaultdict)
5.データ構造の操作
5.1 インデックス参照(スライス)
(1)リストのスライス
(2)文字列のスライス
(3)1次元配列のスライス
(4)2次元配列のスライス
(5)3次元配列のスライス
(6)スライスオブジェクト

1.NumPyのメソッド
(1)np.array()
 多次元配列を作成します。

(2)np.zeros()
 全ての要素がゼロで初期化された新しい配列を生成します。この関数は、配列の形状とデータ型を指定して、必要なサイズのゼロ配列を作成します。
a)1次元配列の生成

b)2次元配列の生成

c)データ型を指定する
 dtype 引数を使用して配列のデータ型を指定できます。デフォルトでは、float64 型になりますが、整数型や他の型を指定することもできます。

(3)np.pad()
 np.pad()は、NumPy配列にパディング(追加の要素)を付けるための関数です。パディングは、配列の周りに一定の値や特定の方法で追加される要素です。これにより、配列のサイズを増やすことができます。

基本的な構文
numpy.pad(array, pad_width, mode, **kwargs)
ここで、
 ・array:配列
・pad_width:各軸ごとのパディングする量。
  pad_width=[((before_1, after_1), … (before_N, after_N))]
(before_i, after_i) は axis=i の index=0 側に before_i、index=-1 側
に after_i だけパディングすることを意味します
・mode:constant 標準、edge 端の値をコピーなど
・**kwargs:オプション

2.ndarray(N-dimensional arrayの略)
 NumPyではPythonのリストではなく、効率性などからndarrayという独自のデータ構造を演算に使う。
 同じ属性や大きさを持った要素を持つ多次元配列を扱うためのクラスの1つ
 NumPy では Python の標準機能であるリスト型変数ではなく、NumPyのndarray型という特別な配列を使用し、これにより行列の掛け算、逆行列、固有値などの計算を高速に行うことができる。
ndarrayが持つ属性
 (ndarrayのインスタンス変数名).(属性)でndarrayインスタンスの情報を取得することができる。
 ndarrayクラスには、データ操作や計算に役立つ多くのメソッドが用意されています。以下に、いくつかの主要なメソッドを紹介します。
属性
ndarray.shape: 配列の形状を表すタプル。
ndarray.dtype: 配列の要素のデータ型。
ndarray.size: 配列の要素の総数。
ndarray.ndim: 配列の次元数。
メソッド
ndarray.astype(dtype): 配列の要素のデータ型を指定された型に変換した新しい配列を返す。
ndarray.copy(): 配列のコピーを作成して返す。
ndarray.flatten(): 配列を1次元にフラット化した新しい配列を返す。
ndarray.reshape(shape): 配列の形状を変更した新しい配列を返す。
ndarray.transpose(*axes): 配列の軸を並べ替えた新しい配列を返す。
ndarray.sum(axis=None): 配列要素の合計を返す。
ndarray.mean(axis=None): 配列要素の平均を返す。
ndarray.min(axis=None): 配列要素の最小値を返す。
ndarray.max(axis=None): 配列要素の最大値を返す。
ndarray.argmin(axis=None): 配列要素の最小値のインデックスを返す。
ndarray.argmax(axis=None): 配列要素の最大値のインデックスを返す。
ndarray.cumsum(axis=None): 配列要素の累積和を返す。
ndarray.cumprod(axis=None): 配列要素の累積積を返す。

(1)ndarray.shape
 NumPyの配列(ndarray)オブジェクトの形状を取得します。各次元のサイズを表すタプルが返されます。

(2)ndarray.dtype
 配列のデータ型を取得します。

(3)ndarray.reshape()
 配列の形状を変更します。元のデータは保持されますが、形状が変わります。
 (元の配列)
 array = np.array([1, 2, 3, 4, 5, 6])
 (変更後の配列)
 reshaped_array [[1 2 3]
 [4 5 6]]

(4)ndarray.flatten()
 多次元配列を1次元に変換します。

(5)ndarray.sum()
 配列の全要素の合計を計算します。軸を指定することで、その軸に沿った合計も求められます。

(6)ndarray.mean()
 配列の全要素の平均を計算します。軸を指定することで、その軸に沿った平均も求められます。

(7)ndarray.max() と ndarray.min()
 配列の最大値と最小値を取得します。軸を指定することで、その軸に沿った最大値と最小値も求められます。

(8)ndarray.dot()
 行列のドット積(内積)を計算します。

(9) ndarray.transpose()
 配列の転置を返します。行と列を入れ替えます。

3.ベクトルの類似性の評価
3.1 内積
(1)行ベクトル間の内積
 行列aと行列bの各行ベクトル間の内積を計算する方法を示します。

(2)列ベクトル間の内積
 行列aと行列bの各行ベクトル間の内積を計算する方法を示します。

3.2 コサイン類似度

ベクトルのノルム(ユークリッドノルム)
デフォルトでは、np.linalg.norm() はユークリッドノルム(L2ノルム)を計算します。

4.コレクションデータ型とメソッド
4.1 リスト (List)
 リストは、順序付けられた変更可能なコレクションです。

4.2 タプル (Tuple)
 タプルは、順序付けられた変更不可能なコレクションです。

4.3 セット (Set)
 集合セットは重複しない要素(同じ値ではない要素、ユニークな要素)のコレクションで、和集合・差集合・積集合などの集合演算を行うことができます。

Union: {1, 2, 3, 4, 5, 6, 7, 8}
Union: {1, 2, 3, 4, 5, 6, 7, 8}
Difference (set1 – set2): {1, 2, 3}
Difference (set1 – set2): {1, 2, 3}
Difference (set2 – set1): {8, 6, 7}
Difference (set2 – set1): {8, 6, 7}
Intersection: {4, 5}
Intersection: {4, 5}

4.4 ディクショナリ (Dictionary)
 ディクショナリは、キーと値のペアのコレクションです。順序はPython 3.7以降で保持されます。

{‘a’: 10, ‘b’: 2, ‘c’: 3, ‘d’: 4}
{‘a’: 10, ‘c’: 3, ‘d’: 4}
dict_keys([‘a’, ‘c’, ‘d’])
dict_values([10, 3, 4])
dict_items([(‘a’, 10), (‘c’, 3), (‘d’, 4)])
10

4.5 デフォルトディクショナリ (defaultdict)
 defaultdict は、キーが存在しない場合にデフォルト値を提供するディクショナリです。
 このデフォルト値を生成するために使用されるのがファクトリ関数です。
 defaultdict を使用するには、collections モジュールをインポートし、デフォルト値を生成するためのファクトリ関数を渡してインスタンスを作成します。

 ファクトリ関数として、いくつかの組み込み関数や独自に定義した関数を使用できます。
 ・int:デフォルト値として0を返す
 ・list:デフォルト値として空のリストを返す
 ・set:デフォルト値として空のセットを返す
defaultdict(, {‘a’: 1})
defaultdict(, {‘a’: [1]})
defaultdict(, {‘a’: {1}})

4.6 デキュー (deque)
 deque は、両端での高速な挿入と削除が可能なデータ構造です。

deque([0, 1, 2, 3, 4, 5, 6])
deque([1, 2, 3, 4, 5])

5.データ構造の操作
5.1 インデックス参照(スライス)
 リスト、タプル、文字列、辞書、セット、Numpy配列などのデータ構造を操作するための基本的な方法です。これにより、特定の要素へのアクセス、更新、部分列の取得が可能になります。
 Pythonのスライスは、[start:stop:step] の形式で指定します。
 start: スライスの開始位置(この位置の要素を含む)
 stop: スライスの終了位置(この位置の要素を含まない)
 step: スライスのステップ

 以下に、スライスの基本的な使い方と例を示します。

(1)リストのスライス

[2, 3, 4, 5]
[0, 2, 4]
[5, 6, 7, 8, 9]
[0, 1, 2, 3, 4]
[0, 2, 4, 6, 8]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

(2)文字列のスライス

Hello
World!
!dlroW ,olleH

(3)1次元配列のスライス

[2 3 4 5]
[0 2 4]

(4)2次元配列のスライス

[2 3 4 5]
[0 2 4]

(5)3次元配列のスライス

(6)スライスオブジェクト
 スライスオブジェクトはPythonのslice型で、スライスの開始、終了、およびステップを格納します。

[2, 3, 4, 5]
[0, 2, 4]