DataFrame 到 NumPy 数组的转换

DataFrame 到 NumPy 数组的转换

参考:dataframe to numpy array

在数据处理和分析中,经常需要在不同的数据结构之间进行转换。Pandas 的 DataFrame 和 NumPy 的数组是两种常用的数据结构。DataFrame 提供了丰富的数据操作功能,而 NumPy 数组以其高效的数值计算能力而广泛应用于科学计算。本文将详细介绍如何将 DataFrame 转换为 NumPy 数组,并提供多个示例代码以展示不同的转换方法和技巧。

1. 基本转换方法

示例代码 1:基本转换

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# DataFrame 转换为 NumPy 数组
array = df.values
print(array)

Output:

DataFrame 到 NumPy 数组的转换

示例代码 2:使用 to_numpy() 方法

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [10, 20, 30],
    'B': [40, 50, 60],
    'C': [70, 80, 90]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 使用 to_numpy() 方法转换
array = df.to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

2. 选择性转换

示例代码 3:转换特定列

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [100, 200, 300],
    'B': [400, 500, 600],
    'C': [700, 800, 900]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 选择特定列转换为 NumPy 数组
array = df[['A', 'B']].to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

示例代码 4:排除某些列

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [1000, 2000, 3000],
    'B': [4000, 5000, 6000],
    'C': [7000, 8000, 9000]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 排除列 C
array = df[df.columns.difference(['C'])].to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

3. 数据类型转换

示例代码 5:指定数据类型

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [1.1, 2.2, 3.3],
    'B': [4.4, 5.5, 6.6],
    'C': [7.7, 8.8, 9.9]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 转换为整数类型的 NumPy 数组
array = df.to_numpy(dtype=int)
print(array)

Output:

DataFrame 到 NumPy 数组的转换

示例代码 6:保持原有数据类型

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4.0, 5.0, 6.0],
    'C': ['7', '8', '9']
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 转换时不指定数据类型
array = df.to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

4. 处理缺失值

示例代码 7:处理含有 NaN 的 DataFrame

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [1, np.nan, 3],
    'B': [4, 5, np.nan],
    'C': [7, 8, 9]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 转换为 NumPy 数组,NaN 保持不变
array = df.to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

示例代码 8:填充 NaN 后转换

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [np.nan, 2, 3],
    'B': [4, 5, 6],
    'C': [np.nan, 8, 9]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 填充 NaN 并转换
array = df.fillna(0).to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

5. 高级转换技巧

示例代码 9:转换并应用函数

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [10, 20, 30],
    'B': [40, 50, 60],
    'C': [70, 80, 90]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 转换为 NumPy 数组并计算每个元素的平方
array = np.square(df.to_numpy())
print(array)

Output:

DataFrame 到 NumPy 数组的转换

示例代码 10:使用条件表达式

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({
    'A': [100, 200, 300],
    'B': [400, 500, 600],
    'C': [700, 800, 900]
}, index=['numpyarray.com', 'numpyarray.com', 'numpyarray.com'])

# 转换为 NumPy 数组,只包含大于 250 的元素
array = df[df > 250].to_numpy()
print(array)

Output:

DataFrame 到 NumPy 数组的转换

以上示例代码展示了从 DataFrame 到 NumPy 数组的多种转换方法。通过这些转换,可以利用 NumPy 的强大数值处理功能来进一步分析和处理数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程