Pythonのデータ型
Pythonでは、以下のようなデータ型を用いることができます。
int(整数)、float(浮動小数点)、str(文字列)、bool(真偽値)、list(リスト)、tuple(タプル)、dict(辞書)、set(セット)。
各データ型には異なる型を持っており、プログラミングで役立つように設計されています。
したがって、プログラムを実行するには、自分が使いたいデータ型を適切に選択することが重要となります。
Pythonのデータ型
Pythonでは、以下のデータ型が定義されています。
- 数値型
- int: 整数
- float: 浮動小数点
- complex: 複素数
- 文字列型
- str: 文字列
- ブール型
- bool: 真偽値
- コンテナ型
- list: リスト
- tuple: タプル
- dict: 辞書
- set: 集合
数値型は、整数、浮動小数点、複素数の3種類があります。
整数は、正の数、負の数、0を表すことができます。
浮動小数点は、小数点を含む数を表すことができます。
複素数は、実数と虚数を含む数を表すことができます。
文字列型は、文字の並びを表すことができます。
ブール型は、真と偽を表すことができます。
コンテナ型は、複数のデータをまとめて扱うことができるデータ型です。
リストは、順序付きのデータを扱うことができます。
タプルは、変更できないリストです。
辞書は、キーと値の組でデータを扱うことができます。
集合は、重複しないデータを扱うことができます。
Pythonでは、変数にデータを代入するときに、データ型を指定する必要はありません。
Pythonが、代入された値からデータ型を自動的に判断します。
ただし、データ型を明示的に指定することで、コードの可読性を向上させることができます。
また、データ型を指定することで、型変換を明示的に行うことができます。
例えば、以下のコードは、整数を文字列に変換します。
x = 10
# 明示的に型変換する
str_x = str(x)
print(str_x)
このコードは、以下の出力を生成します。
10
Pythonのデータ型の変換
Pythonでは様々なデータ型があり、必要に応じて型変換を行うことができます。主なデータ型の変換方法は以下の通りです。
数値型から文字列型への変換
数値型(int, float)を文字列型(str)に変換するには、 str()関数を使用します。
関連 python int tostring/数値を文字列に変換
```python n = 100 s = str(n) print(type(s), ':', s) # <class 'str'> : 100 n = 1.23 s = str(n) print(type(s), ':', s) # <class 'str'> : 1.23 ```
また、2進数、8進数、16進数の文字列表記に変換するには、それぞれ bin(), oct(), hex()関数が使えます。
```python n = 100 s = bin(n) # 2進数表記の文字列に変換 print(s) # 0b1100100 s = oct(n) # 8進数表記の文字列に変換 print(s) # 0o144 s = hex(n) # 16進数表記の文字列に変換 print(s) # 0x64 ```
文字列型から数値型への変換
文字列型を整数型(int)や浮動小数点型(float)に変換するには、それぞれ int(), float()関数を使います。
関連 stringをintに(python)/数字の型変換の変換
```python s = '100' n = int(s) print(type(n), ':', n) # <class 'int'> : 100 s = '1.23' n = float(s) print(type(n), ':', n) # <class 'float'> : 1.23 ```
リストとタプルの相互変換
リスト(list)をタプル(tuple)に変換するには tuple()関数を、逆にタプルをリストに変換するには list()関数を使います。
```python my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) # (1, 2, 3) my_tuple = (4, 5, 6) my_list = list(my_tuple) print(my_list) # [4, 5, 6] ```
NumPyのデータ型変換
NumPyの配列ndarrayのデータ型dtypeは、 astype()メソッドで変換できます。引数には型オブジェクト(np.int64など)、型名(’int64’など)、型コード(’i8’など)を指定できます。
```python import numpy as np a = np.array([1, 2, 3], dtype=np.int32) print(a.dtype) # int32 a = a.astype(np.int64) print(a.dtype) # int64 ```
pandasのデータ型変換
pandasのDataFrameやSeriesのデータ型dtypeも、 astype()メソッドで変換可能です。引数の指定方法はNumPyと同様です。
```python import pandas as pd df = pd.DataFrame({'A': [1, 2, 3]}, dtype='int64') print(df.dtypes) # A int64 df['A'] = df['A'].astype('float64') print(df.dtypes) # A float64 ```
以上のように、Pythonではデータ型に合わせた適切な変換関数、メソッドを使うことで柔軟に型変換ができます。