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

先啰嗦两句

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

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

先来个切片,索引

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

[:, :]先行后列
[0, 0:4]1行的第1列到第3[0:3, 1]13行的第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变成了32列
# 如果是([-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. 其中一个数组的某一维度为1
  2. 这两个数组对应维度相等

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

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的三维代码,有需要的可以自行百度。

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铃灵狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值