1次元の型変換を網羅しておく
numpy、pandas を使っていると、型変換のときに、いつも詰まってしまいます。
そこで、この記事でまとめて、覚えてしまいたいと思います。
dict型との変換も気になりますが、こんがらがるので、dict型はまた別でまとめます。
ndarray の公式ドキュメントを載せておきたいと思います。
ndarray の正式名称って The N-dimensional array なんですね。
ndarray の公式ドキュメント です。
pandas.Series の公式ドキュメントも載せておきます。
pandas.Series の公式ドキュメント
相互変換を図にしてみました。
list型とndarray型
tolist() なのか、to_list() なのか、いつも忘れてしまいます。正解は tolist() でした。
Python
li = [1, 2, 3, 4]
print(li)
print(type(li))
# [1, 2, 3, 4]
# <class 'list'>
# list型からndarray型に変換
nda = np.array(li)
print(nda)
print(type(nda))
# [1 2 3 4]
# <class 'numpy.ndarray'>
# ndarray型からlist型に変換
li = nda.tolist()
print(li)
print(type(li))
# [1, 2, 3, 4]
# <class 'list'>
list型とpandas.Series型
pandas.Series が to_list() です。
Python
li = [1, 2, 3, 4]
print(li)
print(type(li))
# [1, 2, 3, 4]
# <class 'list'>
# list型からpd.Series型に変換
pds = pd.Series(li)
print(pds)
print(type(pds))
print(pds.index)
# 0 1
# 1 2
# 2 3
# 3 4
# dtype: int64
# <class 'pandas.core.series.Series'>
# RangeIndex(start=0, stop=4, step=1)
# pd.Series型からlist型に変換
li = pds.to_list()
print(li)
print(type(li))
# [1, 2, 3, 4]
# <class 'list'>
ndarray型とpandas.Series型
pandas.Series型をndarray型にする方法は2つあります。
Python
# ndarray型をps.Series型に変換
nda = np.array([1, 2, 3, 4])
pds = pd.Series(nda)
print(pds)
print(type(pds))
# 0 1
# 1 2
# 2 3
# 3 4
# dtype: int64
# <class 'pandas.core.series.Series'>
# ps.Series型をndarray型に変換
nda = pds.to_numpy()
print(nda)
print(type(nda))
# [1 2 3 4]
# <class 'numpy.ndarray'>
# ps.Series型をndarray型に変換
nda = pds.values
print(nda)
print(type(nda))
# [1 2 3 4]
# <class 'numpy.ndarray'>