Pythonでタプルを2次元テーブル(配列)に変換する方法
Pythonでタプルを2次元のテーブル(行列形式)に変換したい場面はよくあります。変換方法は主に2つあり、NumPyのような数値計算ライブラリを使う方法と、純粋なPythonだけで実現する方法があります。それぞれの手順を詳しく見ていきましょう。
方法1:NumPyのreshapeメソッドを使う
NumPyが利用できる環境であれば、reshapeメソッドを使ってデータを多次元配列に変形するのが最もシンプルで効率的です。
サンプルコード
import numpy data = numpy.array(range(1, 10)) reshaped = data.reshape(3, 3) print(reshaped)
出力結果
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
注意点:reshapeメソッドは元の配列を直接変更するのではなく、新しい形状を持つ配列を返します。そのため、結果を別の変数に代入して使う必要があります。
方法2:純粋なPythonでスライスと内包表記を使う
外部ライブラリに依存したくない場合は、スライスとジェネレータ式(タプル内包表記)を組み合わせることで、同じ結果を得られます。
サンプルコード
data = tuple(range(1, 10)) table = tuple(data[n:n+3] for n in range(0, len(data), 3)) print(table)
出力結果
((1, 2, 3), (4, 5, 6), (7, 8, 9))
仕組みの解説
range(0, len(data), 3)は0、3、6といった開始位置を順番に生成し、各位置から3要素ずつスライス(data[n:n+3])することで、1行あたり3要素の2次元構造を作り出しています。
この方法の利点は柔軟性です。例えば1行あたりの要素数を4に変更したい場合は、「3」の部分を「4」に書き換えるだけで対応できます。小規模なデータ処理や依存関係を減らしたいプロジェクトでは、こちらのアプローチが便利です。
-
Pythonでタプルを定義するには?基本の作成方法をわかりやすく解説
Pythonにおけるタプルとはタプル(tuple)は、Pythonの標準データ型のひとつで、複数のオブジェクトを順序付けて格納できるイミュータブル(変更不可)なシーケンスです。リストとよく似ていますが、一度作成した後は要素の追加・削除・変更ができないという点が大きな特徴です。タプルの基本的な定義方法タプルオブジェクトは、1つ以上のオブジェクトをカンマ(,)で区切って並べるだけで作成できます。各要素は必ずしも同じ型である必要はなく、整数・文字列・浮動小数点数・真偽値など、異なる型のオブジェクトを自由に混在させることができます。また、コレクション全体を丸括弧 ( ) で囲むこともできますが、これは
-
Pythonで16進文字列をintに変換する方法をわかりやすく解説
Pythonで16進文字列をintに変換する基本 Pythonでは、組み込み関数 int() を使うことで、16進数の文字列を簡単に整数(int型)へ変換できます。16進文字列には一般的に「0x」というプレフィックスが付いており、その有無によって指定方法が少し異なります。 「0x」プレフィックスがある場合 文字列に「0x」プレフィックスが付いている場合は、int(文字列, 0) のように第2引数に 0 を指定します。こうすることで、Pythonがプレフィックスをもとに基数を自動的に判別してくれます。 >>> int(0xfe43, 0) 65091 「0x」プレフィックス