【人工智能基础】想用Python处理数据?你需要的Numpy和Pandas都在这呢!

Lewa ·
更新时间:2024-05-16
· 756 次阅读

先啰嗦两句

这里精简的总结了Numpy和Pandas的常用用法,学会了这些,剩下的遇见一个查一个效率也很高呀!

记得不要枯燥的一个命令一个命令的练习,更不要只看不练,上网找成品的代码吧!

先来个切片,索引

这个和这俩的学习没太大关系,使用时关系还是相当大的,也比较重要,我是容易忘,先记录一下。

[:, :]先行后列 [0, 0:4]第1行的第1列到第3列 [0:3, 1]第1到3行的第2列 Numpy

这里设 jason 为一个数组,jason是我小时候用过的英文名。

上面是代码,下面是解释

jason.shape

返回数组的行数和列数:(行,列)

jason.size

返回数组中的元素的个数,就是里面有多少个数。

jason.dtype

返回的是数组中数据的类型,int64呀什么的

下面是个重点:

jason = np.array([[1, 2, 3], [4, 5, 6]])

建立数组,注意前面有几个中括号就是几维数组

其中有个这么个玩应

np.asarray([])

这个玩应用法和 array 是一样的,但是不能通过索引修改数组中的值

np.zeros([]) np.ones([])

这两个和 array 用法相同,不过多介绍了

jason = np.linspace(起始值,结束值,返回的元素的个数) jason = np.arange(起始值,结束值,步长)

这两个是生成等差数列的,我感觉下面那个好像更常用一些。

下面是个大重点

生成随机数组模块 np.random!

接着往下

生成均匀分布数组

jason = np.random.rand() # 生成0~1的随机数组 # 输入一个数:生成一维数组,参数为元素个数 # 输入a, b这种:生成二维数组,a行b列 jason = np.random.uniform(low, high, size = (a, b)) # 在一个左闭右开的区间生成均匀分布的数组 jason = np.random.randint() # 用法和uniorm完全一样,只不过这个生成的是整数

这三个好像都比较常用

生成正态分布数组

jason = np.random.randn() # 生成0~1之间的正态分布数组,参数含义同rand jason = np.random.normal() # 参数:均值,标准差,size=(行数,列数)

第一个相对来说更常用一些

接下来是形状修改,也很常用

jason1 = jason.reshape([3,2]) # 把jason变成了3行2列 # 如果是([-1, 2]) # 表示变成2列的就行,爱几行几行 jason.resize([]) # 用法相同,这个是改变jason原有的而不是生成 jason.T # 转置 这个感觉看一眼这辈子都不会忘了 jason.astype(np.int32) # 修改数组类型

貌似都比较重要

数组去重,有时候会用到

jason = np.array([[1, 2, 3], [2, 3, 4]]) np.unique(jason) # 去除同党中。。。 # 输出 ([1, 2, 3, 4])

运算符,你迟早要用的上的东东

jason > 5 # 将大于5的数返回True 否则返回False jason[jason > 5] = 1 # 大于5返回1 其他的不变~

常用于整学生成绩这一块

np.all(jason[0:4, :] > 5) # 如果前5行全部大于5才返回True np.any(jason[0:2, :] > 5) # 只要前3行有大于5的,就返回True

接下来

统计

np.max(jason) # 求最大值 np.max(jason, axis = 0) # 求每一列的最大值,axis = 1 就是求每一行 # 这个axis行和列可能会调换 # min 最小 # median 中位数 # mean 平均值 # std 标准差 # var方差

还是统计

np.argmax(jason, axis = 0) # 返回最大值所在的位置 # 如果不传axis,返回的还是位置,就得自己从左往右从上到下数

注意:

数组和数之间的运算是对数组中每个数进行运算

而数组和数组间运算不一定要两个数组完全相同,只要满足一下任意一个对应维数的条件:

注意是对应维数!

其中一个数组的某一维度为1 这两个数组对应维度相等

若所有组对应的维数均满足上述两个条件的其中一个,则这两个数组就可以进行运算。

Pandas

终于快完事了

Series一维数组

jason = pd.series([2, 9, 7], index = [1, 2, 3]) # 指定索引 # 第一个参数为传入的数组 # 索引可以不传入,即默认索引 # 也可以通过字典传入 这里就不举例了 jason.index # 返回索引 jason.values # 返回结果 jason[2] # 索引

DataFrame二维数组或表格

jason = pd.DataFrame([[2, 3, 4], [3, 5, 7]]) # 下面这个比较好玩 # 这里拿不同超市里的水果举例子 supermaket = ['超市' + str(i) for i in range(jason.shape[0])] frute = ['西瓜', '葡萄', '苹果'] data = pd.DataFrame(jason, columns = frute, index = frute) # 这样生成的就是一个表格 # 自己练习一下

这个用字典来生成比较常见

举个栗子

jason = pd.DataFrame({'苹果': [10, 13, 9, 12] '西瓜': [24, 21, 19, 24] '葡萄': [17, 16, 21, 15]})

接下来是它的属性介绍

data.shape # 返回行数和列数 data.columns # 返回列索引 data.index # 返回行索引 data.valus # 返回值 data.T # 转置 data.head(3) # 获取前3行 data.tail(3) # 获取后5行 # 最后这两个不输入参数默认就是5

注意:

这里修改索引只能全体一起改:

data.index = xin_de_suo_yin data.reset_index() # 这个命令的意思是再左侧加一列数字作为索引 # 原索引变成index自成一列 # 试一下就知道咋回事了 jason.set_index('apple') jason.set_index(['water', 'food']) # 以上两种方式设置新的索引值

读取数据

jason = pd.read_csv("数据保存路径/文件名.csv") # 也可以_excel 后面就是文件名.excel 总结

终于完事了。

以上省略了部分不常用的代码和pandas的三维代码,有需要的可以自行百度。

这些都是经常能用到的生成和处理数据的命令。


作者:铃灵狗



人工智能 用python NumPy pandas 数据 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号