1次元リストの型変換
1次元のリスト a = [1.0, 2.0, 3.0, 4.0, 5.0]をすべてint型に変換する場合はmap関数を使う.
1 2 3 4 |
>>> a = [1.0, 2.0, 3.0, 4.0, 5.0] >>> b = list(map(int,a)) >>> b [1, 2, 3, 4, 5] |
多次元リストの型変換
多次元リスト内の要素をすべて一括で型変換する場合に,1次元のときと同じようにmap関数を用いるのエラーが出る.
1 2 3 4 5 |
>>> a = [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] >>> b = list(map(int,a)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: int() argument must be a string, a bytes-like object or a number, not 'list' |
1 2 3 4 5 6 7 8 |
import numpy as np a = [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] f = np.vectorize(int) #関数としてintを指定 b = f(a) #当然このようにも書ける b = np.vectorize(int)(a) |
1 2 3 4 5 |
>>> b array([[1, 2], [3, 4], [5, 6]]) |