【Python】リスト二次元配列作成方法

みなさんこんにちは、ZeroTerasu(@ZeroTerasu)です。

今回は、[[リスト1], [リスト2], [リスト3]]のようなリストの各要素がリストになっている2次元配列の作成方法について解説致します。

まずは、結論を下記コードで示します。

import numpy as np
list = []
list = np.arange(1,10).reshape(3,3).tolist()
list
#実行結果 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

np.arange(start, stop, step):引数に応じて連続した値を生成する。

python組み込み関数であるrange関数と同様の挙動をして、ndarrayオブジェクトを生成します。

import numpy as np
list = []
# 例1
list = np.arange(1,10)
list
#実行結果 array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 例2
list = np.arange(1,10,3)
list
#実行結果 array([1, 4, 7])

start : 開始番号

stop : 終了番号

step : 飛ばす数値(省略可)

上記の例1では、1 から始まって10未満の範囲を一つずつ抽出しています。

上記の例2では、1 から始まって10未満の範囲で且つ3つずつ飛ばした数値を抽出しています。

range関数については下記記事もご参照下さい。

ndarray.reshape(newshape):ndarrayの次元数および各次元の要素数を変化させる

numpy配列(ndarray)のreshapeメソッドは、引数に任意の配列の次元数および各次元の要素数を指定することで、引数に応じた形状に配列を変形してくれます。

また、引数newshapeには、整数または整数のタプルまたはリストが使用できます。

下記の例では、(2, 5) <= 次元 = 2, 各次元の要素=5 となるように配列形状を変形しています。

import numpy as np
list = []
list = np.arange(1,11)
list
#実行結果 array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
list2 = list.reshape(2,5)
list2
#実行結果 array([[ 1,  2,  3,  4,  5],
#               [ 6,  7,  8,  9, 10]])

ndarray.tolist():ndarrayをリストに変形する。

ndarrayオブジェクトにtolist()メソッドを使用すると、通常のリスト型に変形することが出来ます。

import numpy as np
list = []
list = np.arange(1,10)
list
#実行結果 array([1, 2, 3, 4, 5, 6, 7, 8, 9])
list2 = list.reshape(3,3)
list2
#実行結果 array([[1, 2, 3],
#               [4, 5, 6],
#               [7, 8, 9]])
list = np.arange(1,10).reshape(3,3).tolist()
list
#実行結果 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

コメント

タイトルとURLをコピーしました