使用するdf.to_numpy() は、pandas オブジェクトから NumPy 配列を取得する一貫した信頼性の高い方法を提供するため、推奨されるメソッドです。これは Index、Series、DataFrame オブジェクトで定義されており、デフォルトでは基になるデータのビューを返します。つまり、NumPy 配列に加えられた変更は pandas オブジェクトにも反映されます。データのコピーが必要な場合は、copy=True パラメーターを使用できます。
df.values は現在のバージョンの pandas では非推奨にはならないことに注意してください。新しいコードには df.to_numpy() を使用し、できるだけ早く新しい API に移行することをお勧めします。
pandas データフレームを NumPy 配列に変換するときに dtype を保持するには、DataFrame.to_records() メソッドを使用できます。
pandas を pd としてインポート<br>numpy をインポートnp</p> <p>インデックス = [1, 2, 3, 4, 5, 6, 7]<br>a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] <br>b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]<br>c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]<br>df = pd.DataFrame({'A': a, 'B': b, 'C': c}, インデックス=インデックス)<br>df = df.rename_axis('ID')</p> <h1>保持された dtypes を使用して DataFrame を NumPy 配列に変換します</h1> <p>array = df.to_records()</p> <h1>NumPy を出力しますarray</h1> <p>print(array)<br>
コードの出力は次のとおりです:
<br> rec.array([('ID', 'インデックス', 'A', 'B', 'C')]</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> [1, 'a', nan, 0.2, nan], [2, 'b', nan, nan, 0.5], [3, 'c', nan, 0.2, 0.5], [4, 'd', 0.1, 0.2, nan], [5, 'e', 0.1, 0.2, 0.5], [6, 'f', 0.1, nan, 0.5], [7, 'g', 0.1, nan, nan]), dtype=[('ID', '<i8'), ('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])
ご覧のとおり、NumPy 配列は DataFrame 内の列の dtype を保持します。
以上がPandas DataFrame を NumPy 配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。