Pandas DataFrame を NumPy 配列に変換するには、次の 2 つの方法があります。
(1)第一のアプローチ:
df.to_numpy()
(2)第2のアプローチ:
df.values
Pandas DataFrame を NumPy 配列に変換する手順
ステップ1: DataFrameを作成する
簡単な例として、3列のDataFrameを作成しましょう。3列には数値データ(つまり整数)のみが含まれます。
import pandas as pd
data = {'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
print(df)
print(type(df))
コードを実行すると、次の Pandas DataFrame が得られます。

ステップ2: DataFrameをNumPy配列に変換する
df.to_numpy() の最初のアプローチを使用して、DataFrame を NumPy 配列に変換できます。
df.to_numpy()
変換を実行するための完全なコードは次のとおりです。
import pandas as pd
data = {'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
my_array = df.to_numpy()
print(my_array)
print(type(my_array))
ご覧のとおり、DataFrame は NumPy 配列に変換されています。

あるいは、 df.values の 2 番目のアプローチを使用して、DataFrame を NumPy 配列に変換することもできます。
import pandas as pd
data = {'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
my_array = df.values
print(my_array)
print(type(my_array))
同じ NumPy 配列が得られます。

ステップ3(オプション):データ型を確認する
DataFrame を配列に変換したら、コードの末尾に print(my_array.dtype) を追加して dtype を確認できます。
import pandas as pd
data = {'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
my_array = df.to_numpy()
print(my_array)
print(type(my_array))
print(my_array.dtype)
上記の例では、dtype は整数 (int64) です。

混合データ型の DataFrame を変換する
混合データ型 (例: 文字列/オブジェクトと整数) を持つ DataFrame がある場合はどうなるでしょうか?
たとえば、文字列と数値データが混在する別の DataFrame を作成してみましょう。
import pandas as pd
data = {'Name': ['Jon', 'Maria', 'Bill'],
'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
print(df)
print(type(df))
DataFrame は次のようになります。

上記の DataFrame を NumPy 配列に変換し、dtype を確認しましょう。
import pandas as pd
data = {'Name': ['Jon', 'Maria', 'Bill'],
'Age': [25, 47, 38],
'Birth Year': [1995, 1973, 1982],
'Graduation Year': [2016, 2000, 2005]
}
df = pd.DataFrame(data)
my_array = df.to_numpy()
print(my_array)
print(type(my_array))
print(my_array.dtype)
ご覧のとおり、この場合の dtype は object です。
