Pandas和NumPy的比较
NumPy 主要用 C语言编写,因此,在计算还和处理一维或多维数组方面,它要比 Python 数组快得多。关于 NumPy 的学习,可以参考《Python NumPy教程》。
创建数组
数组的主要作用是在一个变量中存储多个值。NumPy 可以轻松地处理多维数组,示例如下:
import numpy as np
arr = np.array([2, 4, 6, 8, 10, 12])
print(type(arr))
print ("打印新建数组: ",end="")
#使用for循环读取数据
for l in range (0,5):
print (arr[l], end=" ")
输出结果:
<class 'numpy.ndarray'>
打印新建数组: 2 4 6 8 10
虽然 Python 本身没有数组这个说法,不过 Python 提供一个 array 模块,用于创建数字、字符类型的数组,它能够容纳字符型、整型、浮点型等基本类型。示例如下:
import array
#注意此处的 'l' 表示有符号int类型
arr = array.array('l', [2, 4, 6, 8, 10, 12])
print(type(arr))
print ("新建数组: ",end="")
for i in range (0,5):
print (arr[i], end=" ")
输出结果:
<class 'array.array'>
新建数组: 2 4 6 8 10
布尔索引
布尔索引是 NumPy 的重要特性之一,通常与 Pandas 一起使用。它的主要作用是过滤 DataFrame 中的数据,比如布尔值的掩码操作。下面示例展示了如何使用布尔索引访问 DataFrame 中的数据。
首先创建一组包含布尔索引的数据,如下所示:
import pandas as pd
dict = {'name':["ith", "William", "Phill", "Parker"],
'age': ["28", "39", "34", "36"]}
info = pd.DataFrame(dict, index = [True, True, False, True])
print(info)
输出结果:
然后使用name age
True ith 28
True William 39
False Phill 34
True Parker 36
.loc访问索引为 True 的数据。示例如下:输出结果:import pandas as pd
dict = {'name':["ith", "William", "Phill", "Parker"],
'age': ["28", "39", "34", "36"]}
info = pd.DataFrame(dict, index = [True, True, False, True])
#返回所有为 True的数据
print(info.loc[True])
name age
True ith 28
True William 39
True Parker 36
重塑数组形状
在不改变数组数据的情况下,对数组进行变形操作,即改变数组的维度,比如 2*3(两行三列)的二维数组变维 3*2(三行两列)的二维数组。变形操作可以通过 reshape() 函数实现。示例如下:
输出结果:import numpy as np
arr = np.arange(16)
print("原数组: \n", arr)
arr = np.arange(16).reshape(2, 8)
print("\n变形后数组:\n", arr)
arr = np.arange(16).reshape(8 ,2)
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]]
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:
info = pd.DataFrame({"P": [2, 3], "Q": [4.0, 5.8]})
#给info添加R列
info['R'] = pd.date_range('2020-12-23', periods=2)
print(info)
#将其转化为numpy数组
n=info.to_numpy()
print(n)
print(type(n))
输出结果:
可以通过 type 查看其类型,输出如下:[[2 4.0 Timestamp('2020-12-23 00:00:00')]
[3 5.8 Timestamp('2020-12-24 00:00:00')]]
numpy.ndarray
示例2:
import pandas as pd
#创建DataFrame对象
info = pd.DataFrame([[17, 62, 35],[25, 36, 54],[42, 20, 15],[48, 62, 76]],
columns=['x', 'y', 'z'])
print('DataFrame\n----------\n', info)
#转换DataFrame为数组array
arr = info.to_numpy()
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]]
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 风儿(风儿轻轻的吹)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 鬼泣5攻略(鬼泣5攻略第三关怎么跳)
- 地球日主题(2020年世界地球日主题)
- 和柳亚子(和柳亚子先生于田)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 充值卡代理(充值卡代理加盟)
- 郭妮小说(恶魔的法则郭妮小说)
- 杭同(杭同培训中心怎么样)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 服饰加盟(服饰加盟店招商)
- 疯狂填字(疯狂填字5)
- 点对点短信息(点对点短信息费是什么意思)
- 河北省大运会(河北省大运会时间)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 常州天宁寺(常州天宁寺求什么灵验)
- 河源巴伐利亚(河源巴伐利亚庄园)
- 广州中山大学(广州中山大学录取分数线2023)
