Numpy:读取本地文件及数据处理

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

print(t1.swapaxes(1,0))

‘’'print result

[[ 1 2 3]

[ 24 45 29]

[ 50000 56000 400000]]

[[ 1 2 3]

[ 24 45 29]

[ 50000 56000 400000]]

[[ 1 2 3]

[ 24 45 29]

[ 50000 56000 400000]]

‘’’

取行数据


(1)取一行数据

print(t1[num])

t1是二维数组,取一个索引值即可

(2)取连续的多行数据

print(t1[num1:num2])

使用切片,取索引值为num1到(num2-1)之间的行

(3)取不连续的多行数据

print(t1[ [2,4,6] ])

t1[ indexList ] 取索引值为indexList列表中的行

取列数据


(1)取一列数据

print(t1[:,num])

使用冒号,num表示取列的索引值

(2)取连续的多列数据

print(t1[:,num1:num2])

取索引值为num1到(num2-1)之间的列

(3)取不连续的多列数据

print(t1[ :,[2,4,6] ])

取索引值为2,4,6的列

取固定区域数据


根据坐标取值

data_1 = t1[2,4] # t1[num1,num2] 取行为num1,列为num2的数据print(t1[[0,1,2],[2,0,1]]) # 取坐标为(0,2)(1,0)(2,1)三个点

区域取值

print(t1[0:2,0:2]) # 第0行到第1行,第0列到第1列的交叉处的数据

import numpy as np

条件判断修改


print(a1<40)

对数组使用条件判断,即对数组中的所有数据进行条件判断,若符合条件则赋值为True,不符合赋值为False

print(a1[a1<40])

a1[ a1<40 ] = 20 # 讲a1数组中符合a1<40的数据赋值为20

print(a1)

where三元运算符


np.where(判断语句,data1,data2)

若数局符合判断条件,赋值为data1,否则赋值为data2

print(np.where(a2<30,0,30))

裁剪


array.clip(data1,data2) 将array中小于data1的数据赋值为data1,大于data2的数值赋值为data2

print(b1.clip(10,200))

获取最大值最小值的位置


获取最大值最小值的位置

res1 = np.argmax(c1,axis=0)

返回一个列表,里面是每一列的最大值位置

res2 = np.argmin(c1,axis=1)

返回一个列表,里面是每一行的最小值位置

print(res1)

print(res2)

创建全为0的数组


np.zeros( (a,b) ) a行b列的数组

zeroArray = np.zeros( (3,4) )

zeroArray = zeroArray.astype(int)

print(zeroArray)

创建全为1的数组


np.ones( (a,b) ) a行b列的数组

oneArray = np.ones( (3,4) ).astype(int)

print(oneArray)

创建对角线为1的方阵


创建一个对角线为1的正方形数组

np.eye(num) 边长为num,对角线为1,其他全为0的方阵

print(np.eye(5).astype(int))

水平拼接


np.hstack( (array1,array2) )

print(np.hstack((a1,a2)))

竖直拼接


np.vstack( (array1,array2) )

print(np.vstack((a1,a2)))

行交换


b1[[1,2],:] = b1[[2,1],:]

交换索引值为1和2的行数据

print(b1)

列交换


b2[:,[0,1]] = b2[:,[1,0]]

交换索引值为0和1的列数据

print(b2)

numpy中的nan和inf


  • nan(not a number):表示不是一个数字。当我们读取本地文件的数据为float类型时,如果有缺失,就会出现nan,活着做了一个不合适的计算的时候(如无穷大减去无穷大)

  • inf(infinity):表示正无穷,-inf表示负无穷。当一个数字除以0时,python中会报错,出现inf活着-inf

(一)将一个数据赋值为nan或者inf

data_1 = np.nan

data_2 = np.inf

data_1和data_2的数据类型都是float

(二)两个nan是不相等的

np.nan == np.nan

False

(三)检查数组中nan的个数

print(np.isnan(array_1))

将array_1判断是否为nan,并进行bool类型的赋值

print(np.count_nonzero(np.isnan(array_1)))

np.count_nonzero()返回数组中判断为True的数据个数

(四)出现nan时,为了防止影响均值,会将nan替换成均值,活着直接删除缺失值的一行

numpy常用统计函数


  • 求和:array.sum(axis=None)

  • 均值:array.mean(axis=None)

  • 中值:np.median(array,axis=None)

  • 最大值/最小值:array.max(axis=None) / array.min(axis=None)

  • 极差:np.ptp(array,axis=None)

  • 标准差(平均值分散程度):array.std(axis=None)

案例:将数组中的nan替换为行或列的均值

===============================================================================

import numpy as np

def fillNaNwithMeanValue(array_1):

‘’’

将array中的nan替换为每一列的均值

:param array_1: 未处理数组

:return: array_1 处理后数组

‘’’

for i in range(array_1.shape[1]): #a1.shape[1]为a1的列数

colItem = array_1[:,i] # colItem为当前这一列

nanNum = np.count_nonzero(colItem!=colItem)

if nanNum != 0:

colNoNaN = colItem[colItem==colItem] # 去除nan的一列

print(colNoNaN)

colItem[colItem!=colItem] = colNoNaN.mean()

print(colItem.mean())

return array_1

a1 = np.array([

[1,2,3,0],

[5,0,7,8],

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值