📅  最后修改于: 2023-12-03 15:09:06.317000             🧑  作者: Mango
在进行数据分析和处理时,经常需要将 pandas 系列(Series)转换为 NumPy 数组(Numpy Array),特别是当需要使用一些 NumPy 数组的函数时。在本文中,我们将介绍如何将 pandas 系列转换为 2d NumPy 数组。
首先,我们需要导入 pandas 和 numpy 模块:
import pandas as pd
import numpy as np
pandas.Series 对象内置了 to_numpy() 方法,可以将 Series 转换为 NumPy 数组。对于一维 Series 对象,to_numpy() 方法得到的数组也是一维的。
s = pd.Series([1, 2, 3, 4, 5])
arr = s.to_numpy()
print(arr)
输出结果:
[1 2 3 4 5]
对于二维 Series 对象,to_numpy() 方法得到的是一个二维 Numpy 数组。这个转换是通过对每个元素调用 numpy.array() 函数来完成的。下面是一个例子:
s = pd.Series([[1,2,3],[4,5,6]])
arr = s.to_numpy()
print(arr)
输出结果:
array([[1, 2, 3],
[4, 5, 6]])
如果我们想将整个 DataFrame 转换为 NumPy 数组,我们可以使用 DataFrame 的 to_numpy() 方法。DataFrame 是由多个连续的 Series 组成的,因此 to_numpy() 方法得到的是一个二维 Numpy 数组。
df = pd.DataFrame({'A':[1, 2, 3],'B':[4, 5, 6],'C':[7, 8, 9]})
arr = df.to_numpy()
print(arr)
输出结果:
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
使用 DataFrame 的 to_numpy() 方法时,需要注意到一些细节。
df = pd.DataFrame({'A':[1, 2, 3],'B':[4, 5, 6],'C':[7, 8, 9]})
arr = df.to_numpy()
columns = df.columns
arr_with_header = np.vstack((columns, arr))
print(arr_with_header)
输出结果:
array([['A', 'B', 'C'],
['1', '4', '7'],
['2', '5', '8'],
['3', '6', '9']], dtype='<U11')
本文中我们介绍了两种将 pandas 系列(Series)和 DataFrame 转换为 2d Numpy 数组的方法,并讨论了一些细节问题。如果需要使用一些 Numpy 数组的函数或进行数据可视化等操作,这些方法将会非常有用。