📜  pandas 系列转 numpy 数组 - Python (1)

📅  最后修改于: 2023-12-03 15:18:15.373000             🧑  作者: Mango

Pandas 系列转 Numpy 数组 - Python

在数据分析中,Pandas 和 Numpy 是 Python 中最为常用的两个库。Pandas 通常用于处理数据表格和时间序列数据,而 Numpy 则用于处理数值计算和处理大规模的多维数组数据。

虽然 Pandas 和 Numpy 都可以用于处理数据,但它们之间的数据类型时不同的。在有些情况下,我们需要将 Pandas 中的数据转换为 Numpy 数组,这篇文章将讨论如何将 Pandas Series 和 DataFrame 转换为 Numpy 数组。

Pandas Series 转 Numpy 数组

我们可以通过 Series 对象的 values 属性将 Pandas Series 转换为 Numpy 数组。例如:

import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5])
arr = s.values
print(arr)

输出:

[1 2 3 4 5]
Pandas DataFrame 转 Numpy 数组

Pandas DataFrame 转 Numpy 数组与 Series 转 Numpy 数组类似,可以使用 values 属性将 DataFrame 转换为 Numpy 数组。但是需要注意的是,DataFrame 可以包含多列数据,因此得到的是二维 Numpy 数组。例如:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'gender': ['F', 'M', 'M', 'M']
})

arr = df.values
print(arr)

输出:

array([['Alice', 25, 'F'],
       ['Bob', 32, 'M'],
       ['Charlie', 18, 'M'],
       ['David', 47, 'M']], dtype=object)

这里的 dtype=object 表示 Numpy 数组的类型是 object,因为 DataFrame 中的每列数据类型可能是不同的,因此 Numpy 数组需要使用 object 类型来容纳任意类型的对象。

如果需要使用类型推断的方式将 DataFrame 转换为 Numpy 数组,可以使用 to_numpy() 方法。例如:

arr = df.to_numpy()
print(arr)

输出:

array([['Alice', 25, 'F'],
       ['Bob', 32, 'M'],
       ['Charlie', 18, 'M'],
       ['David', 47, 'M']], dtype=object)

注意,to_numpy() 方法不支持 NA/NaN 值,当 DataFrame 中包含 NA/NaN 值时,转换将失败并引发 ValueError。

结论

本文介绍了如何将 Pandas Series 和 DataFrame 转换为 Numpy 数组。通过了解如何转换数据类型,我们可以更好地利用 Pandas 和 Numpy 提供的数据处理和分析功能。

如果你想了解更多关于 Pandas 和 Numpy 的信息,请参考 Pandas 和 Numpy 的官方文档。