区别
Pandas 和 NumPy 被认为是科学计算与机器学习中必不可少的库,因为它们具有直观的语法和高性能的矩阵计算能力。下面对 Pandas 与 NumPy 进行简单的总结,如下表所示:
比较项PandasNumPy适应性Pandas主要用来处理类表格数据。NumPy 主要用来处理数值数据。工具Pandas提供了Series和DataFrame数据结构。NumPy 构建了 ndarray array来容纳数据。性能Pandas对于处理50万行以上的数据更具优势。NumPy 则对于50万以下或者更少的数据,性能更佳。内存利用率与 NumPy相比,Pandas会消耗大量的内存。NumPy 会消耗较少的内存。对象Pandas 提供了 DataFrame 2D数据表对象。NumPy 则提供了一个多维数组 ndarray 对象
DataFrame对象转换ndarray数组
在某些情况下,需要执行一些 NumPy 数值计算的高级函数,将 DataFrame 对象转换为 NumPy ndarray 数组,并将其返回:
1、使用to_numpy()转换
pandas v0.24.0以上版本,可以使用 to_numpy()
方法,
语法
DataFrame.to_numpy(dtype=None, copy=False)   
参数说明如下:
dtype:可选参数,表示数据类型;
copy:布尔值参数,默认值为 Fales,表示返回值不是其他数组的视图。
示例
import numpy as np
import pandas as pd
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]},
index=['a', 'b', 'c'])
转换整个 DataFrame
df.to_numpy()
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
转换指定列
df[['A', 'C']].to_numpy()
array([[1, 7],
[2, 8],
[3, 9]])
2、使用DataFrame中values
通过Series.values实现series转换为ndarray
import numpy as np
import pandas as pd
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]},
index=['a', 'b', 'c'])
df.values
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
Series转换成adarray
data2 = pd.Series([1, 2, 3])
data2.values
array([1,2,3])
3、使用DataFrame的as_matrix()
import numpy as np
import pandas as pd
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]},
index=['a', 'b', 'c'])
在较高版本中可能会没有这个函数
df.as_matrix()
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
4、使用Numpy的array()
import numpy as np
import pandas as pd
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]},
index=['a', 'b', 'c'])
np.array(df)
array([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
ndarray数组转换成Series和DataFrame对象
ndarray 转换为 series
1、如果ndarray是二维数组,需要通过map结合lamdba
import numpy as np
import pandas as pd
data = np.array([1, 2, 3]).reshape(3, 1) # 二维数组
data_list = map(lambda x: x[0], data)
ser = pd.Series(data_list)
2、如果ndarray是一维数组,则通过data.tolist()即可
import numpy as np
import pandas as pd
data = np.array([1, 2, 3])
ser = pd.Series(data.tolist())
ndarray转换为dataframe
1、直接通过pd.DataFrame转换
import numpy as np
import pandas as pd
data = np.array([['2019/08/02', 'zhansan', 1], ['2019/08/03', 'lisi', 2], ['2019/08/04', 'wangwu', 3]])
df = pd.DataFrame(data)
打印df为
2、指定索引、数据、列名例子
import numpy as np
import pandas as pd
data = np.array([['', 'Col1', 'Col2'], ['Row1', 1, 2], ['Row2', 3, 4]])
df = pd.DataFrame(data=data[1:, 1:], # 从第2行开始并且第2列开始作为数据
index=data[1:, 0], # 第1列做索引,从第2行开始
columns=data[0, 1:]) # 第1行作为列名,从第2列开始
Original: https://blog.csdn.net/weixin_43145427/article/details/124379972
Author: hanscal
Title: Pandas与NumPy区别以及dataframe和ndarray对象转换
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675067/
转载文章受原作者版权保护。转载请注明原作者出处!