首页 >后端开发 >Python教程 >如何高效地将 Pandas DataFrame 转换为 NumPy 数组?

如何高效地将 Pandas DataFrame 转换为 NumPy 数组?

Patricia Arquette
Patricia Arquette原创
2024-12-20 06:15:10186浏览

How to Efficiently Convert Pandas DataFrames to NumPy Arrays?

将 pandas 数据帧转换为 NumPy 数组


为什么 df.to_numpy() 是推荐方法


使用 df.to_numpy()是推荐的方法,因为它提供了从 pandas 对象获取 NumPy 数组的一致且可靠的方法。它在 Index、Series 和 DataFrame 对象上定义,默认情况下,它返回底层数据的视图,这意味着对 NumPy 数组所做的任何修改也将反映在 pandas 对象中。如果需要数据的副本,可以使用copy=True参数。


需要注意的是,df.values在当前版本的pandas中不会被弃用,但是建议对新代码使用 df.to_numpy() 并尽快迁移到较新的 API可能。


要将 pandas 数据帧转换为 NumPy 数组时保留数据类型,可以使用 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},index=index)<br>df = df.rename_axis('ID')</p>
<h1>将 DataFrame 转换为保留 dtypes 的 NumPy 数组</h1>
<p>array = df.to_records()</p>
<h1>打印 NumPy array</h1>
<p>print(array)<br>

代码输出如下:


<br> rec.array([('ID', '索引', 'A', 'B', 'C')]</p>
<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 中列的 dtypes。

以上是如何高效地将 Pandas DataFrame 转换为 NumPy 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn