NumPy:【bool変換,型変換】のサンプルコード
目次
サマリ
- 変換
- bool型⇔one-hotベクトル
- np.astypeを使ったデータ型変換
- 文字列⇔int型
- 整数⇔float型
前提
- np.random.randn
- np.arange
bool型とone-hotベクトル
bool型への変換
データ作成
import numpy as np
a = np.random.randn(3,3)
print(a)
print(a.shape)
[[-0.04979643 1.41875607 -0.82755787] [ 0.15427139 0.94284317 0.74147436] [ 1.08626773 1.23793669 -0.94596466]] (3, 3)
- 形状(3,3)のndarray(NumPy配列)を作成
- マイナスが3か所ある
bool型に変換
b = a<=0
#b = (a<=0) とカッコにしてもよい
print(b)
print(b.shape)
[[ True False True] [False False False] [False False True]] (3, 3)
- マイナスの箇所がTrueになった
- bool型に変換できている
one-hotベクトルに変換する
c = b.astype(np.int8)
print(c)
print(c.shape)
[[1 0 1] [0 0 0] [0 0 1]] (3, 3)
- np.astypeを使う
- bool型からone-hotベクトルに変換された
- astypeは次項を参照
np.astype(型変換)
文字列をint型に変換
データ作成
import numpy as np
a = np.array(['2', '3'], dtype='<U11')
print(a)
print(type(a[0]))
['2' '3'] <class 'numpy.str_'>
- 文字列型のndarray(NumPy配列)を作成
- dtype='<U11’で文字列指定
- '<U11’について
データ型変換
b = a.astype(np.int8)
c = a.astype(int)
print(b)
print(type(b[0]))
print(c)
print(type(c[0]))
[2 3] <class 'numpy.int8'> [2 3] <class 'numpy.int64'>
- b
- 文字列をint8に変換した
- c
- 文字列をint64に変換した
- 他にnp.int32、np.uint8の指定も可能
- uint …… unsignedの略、負の整数は扱えないので注意
整数から浮動小数点(float)に変換
データ作成
import numpy as np
a = np.arange(3)
print(a)
print(type(a[0]))
[0 1 2] <class 'numpy.int64'>
- int型のndarray(NumPy配列)を作成
データ型変換
b = a.astype(np.float32)
print(b)
print(type(b[0]))
[0. 1. 2.] <class 'numpy.float32'>
- int型からfloat型に変換された
- 数字の後ろの「.」(小数点)がfloatを表している
- 他にnp.float64も指定できる
- np.float32との違いは有効桁数
