求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Pandas 教程
1. Pandas 是什么
2.Pandas库下载和安装
3.Pandas Series入门教程
4.Pandas DataFrame入门教程
5.Pandas Panel三维数据结构
6.Python Pandas描述性统计
7.Pandas使用自定义函数
8.Pandas reindex重置索引
9.Pandas iteration遍历
10.Pandas sorting排序
11.Pandas去重函数:drop_duplicates()
12.Python Pandas处理字符串(方法详解)
13.Pandas设置数据显示格式
14.Pandas loc/iloc用法详解
15.Python Pandas统计函数
16.Python Pandas窗口函数
17.Python Pandas聚合函数
18.Python Pandas缺失值处理
19.Pandas groupby分组操作详解
20.Pandas merge合并操作
21.Pandas concat连接操作
22.Python Pandas时间序列
23.Pandas日期时间格式化
24.Padans Timedelta时间差
25.Pandas随机选择样本
26.Pandas数据重采样
27.Python Pandas分类对象
28.Python Pandas绘图
29.Python Pandas读取文件
30.Pandas csv读写文件
31.Pandas Excel读写操作
32.Pandas index操作索引
33.Pandas分层索引入门教程
34.Pandas执行SQL操作
35.Pandas和NumPy的比较
36.Pandas使用的注意事项
 

 
Pandas和NumPy的比较
20 次浏览
 

我们知道 Pandas 是在 NumPy 的基础构建而来,因此,熟悉 NumPy 可以更加有效的帮助我们使用 Pandas。

NumPy 主要用 C语言编写,因此,在计算还和处理一维或多维数组方面,它要比 Python 数组快得多。关于 NumPy 的学习,可以参考《 Python NumPy教程 》。


创建数组

数组的主要作用是在一个变量中存储多个值。NumPy 可以轻松地处理多维数组,示例如下:

1.import numpy as np
2.arr = np.array([2, 4, 6, 8, 10, 12])
3.print(type(arr))
4.print ("打印新建数组: ",end="")
5.#使用for循环读取数据
6.for l in range (0,5):
7. print (arr[l], end=" ")

输出结果:

<class 'numpy.ndarray'>
打印新建数组: 2 4 6 8 10

虽然 Python 本身没有数组这个说法,不过 Python 提供一个 array 模块,用于创建数字、字符类型的数组,它能够容纳字符型、整型、浮点型等基本类型。示例如下:

1.import array
2.#注意此处的 'l' 表示有符号int类型
3.arr = array.array('l', [2, 4, 6, 8, 10, 12])
4.print(type(arr))
5.print ("新建数组: ",end="")
6.for i in range (0,5):
7. print (arr[i], end=" ")

输出结果:

<class 'array.array'>
新建数组: 2 4 6 8 10

布尔索引

布尔索引是 NumPy 的重要特性之一,通常与 Pandas 一起使用。它的主要作用是过滤 DataFrame 中的数据,比如布尔值的掩码操作。

下面示例展示了如何使用布尔索引访问 DataFrame 中的数据。

首先创建一组包含布尔索引的数据,如下所示:

1.import pandas as pd 
2.dict = {'name':["Smith", "William", "Phill", "Parker"],
3. 'age': ["28", "39", "34", "36"]}
4.info = pd.DataFrame(dict, index = [True, True, False, True])
5.print(info)

输出结果:

          name age
True     Smith  28
True   William  39
False    Phill  34
True    Parker  36

然后使用 .loc 访问索引为 True 的数据。示例如下:

1.import pandas as pd   
2.dict = {'name':["Smith", "William", "Phill", "Parker"],
3. 'age': ["28", "39", "34", "36"]}
4.info = pd.DataFrame(dict, index = [True, True, False, True])
5.#返回所有为 True的数据
6.print(info.loc[True])

输出结果:

         name age
True    Smith  28
True  William  39
True   Parker  36

重塑数组形状

在不改变数组数据的情况下,对数组进行变形操作,即改变数组的维度,比如 2*3(两行三列)的二维数组变维 3*2(三行两列)的二维数组。变形操作可以通过 reshape() 函数实现。

示例如下:

1.import numpy as np 
2.arr = np.arange(16)
3.print("原数组: \n", arr)
4.arr = np.arange(16).reshape(2, 8)
5.print("\n变形后数组:\n", arr)
6.arr = np.arange(16).reshape(8 ,2)
7.print("\n变形后数组:\n", arr)

输出结果:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]

变形后数组:
[[ 0  1  2  3  4  5  6  7]
[ 8  9 10 11 12 13 14 15]]

变形后数组:
[[ 0  1]
[ 2  3]
[ 4  5]
[ 6  7]
[ 8  9]
[10 11]
[12 13]
[14 15]]

原数组:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]

变形后数组:
[[ 0  1  2  3  4  5  6  7]
[ 8  9 10 11 12 13 14 15]]

变形后数组:
[[ 0  1]
[ 2  3]
[ 4  5]
[ 6  7]
[ 8  9]
[10 11]
[12 13]
[14 15]]

Pdans与NumPy区别

Pandas 和 NumPy 被认为是科学计算与机器学习中必不可少的库,因为它们具有直观的语法和高性能的矩阵计算能力。下面对 Pandas 与 NumPy 进行简单的总结,如下表所示:

比较项 Pandas NumPy
适应性 Pandas主要用来处理类表格数据。 NumPy 主要用来处理数值数据。
工具 Pandas提供了Series和DataFrame 数据结构 NumPy 构建了 ndarray array来容纳数据。
性能 Pandas对于处理50万行以上的数据更具优势。 NumPy 则对于50万以下或者更少的数据,性能更佳。
内存利用率 与 NumPy相比,Pandas会消耗大量的内存。 NumPy 会消耗较少的内存。
对象 Pandas 提供了 DataFrame 2D数据表对象。 NumPy 则提供了一个多维数组 ndarray 对象

转换ndarray数组

在某些情况下,需要执行一些 NumPy 数值计算的高级函数,这个时候您可以使用 to_numpy() 函数,将 DataFrame 对象转换为 NumPy ndarray 数组,并将其返回。函数的语法格式如下:

DataFrame.to_numpy(dtype=None, copy=False)   

参数说明如下:

  • dtype:可选参数,表示数据类型;
  • copy:布尔值参数,默认值为 Fales,表示返回值不是其他数组的视图。

下面使用示例,了解该函数的使用方法。示例 1:

1.info = pd.DataFrame({"P": [2, 3], "Q": [4.0, 5.8]})
2.#给info添加R列
3.info['R'] = pd.date_range('2020-12-23', periods=2)
4.print(info)
5.#将其转化为numpy数组
6.n=info.to_numpy()
7.print(n)
8.print(type(n))

输出结果:

[[2 4.0 Timestamp('2020-12-23 00:00:00')]
[3 5.8 Timestamp('2020-12-24 00:00:00')]]

可以通过 type 查看其类型,输出如下:

numpy.ndarray

示例2:

1.import pandas as pd 
2.#创建DataFrame对象
3.info = pd.DataFrame([[17, 62, 35],[25, 36, 54],[42, 20, 15],[48, 62, 76]],
4.columns=['x', 'y', 'z'])
5.print('DataFrame\n----------\n', info)
6.#转换DataFrame为数组array
7.arr = info.to_numpy()
8.print('\nNumpy Array\n----------\n', arr)

输出结果:

DataFrame
----------
     x   y   z
0  17  62  35
1  25  36  54
2  42  20  15
3  48  62  76

Numpy Array
----------
[[17 62 35]
[25 36 54]
[42 20 15]
[48 62 76]]


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



20 次浏览