数据分析——numpy(三)

本文详细介绍了numpy库在数据处理中的各种操作,包括修改数组中的值、使用布尔索引、三元运算符、处理nan和inf、数组拼接、行列交换、生成随机数,以及copy和view的区别。通过实例解析了numpy的功能和注意事项,帮助读者掌握高效的数据处理技巧。

numpy

修改数组中的值

(np.array(range(54)).reshape((6,9))为例)

·可通过赋值语句索引后重新赋值
在这里插入图片描述
·通过判断索引后群体赋值(布尔索引)

布尔索引
通过判断语句数组会自动进行判断,显示判断数组,数组中数据类型为numpy.bool_型。我们可以通过判断语句来判断数据符合条件与否即判断数组中数据的值来进行有需求的索引。
在这里插入图片描述
numpy中的三元运算符
语法:

import numpy as np
np.where(判断条件,成立赋值,不成立赋值)

该方法用于数组的全体判断赋值,数组中符合判断条件的赋值为成立赋值,不符合条件赋值为不成立赋值。(ps:该方法返回的是判断后修改更改后的数组,并不会改变原来数组中的值)
在这里插入图片描述
修改上下限(修剪)
语法:

import numpy as np
t=np.array(range(54)).reshape((6,9))
t.clip(a,b)

修改上下限分别为a、b,即数组中小于a的值全部替换为a,大于b的值全部替换成b。
在这里插入图片描述

numpy中的nan和inf

nan(NAN,Nan): “not  a  number” 表示不是一个数字
什么时候numpy中会出现nan:
·当我们读取本地的文件为float的时候,如果有缺失,就会出现nan
·当做了一个不合适的计算的时候(比如无穷大(inf)减去无穷大)

inf(infinity):无穷大,inf表示正无穷,-inf表示负无穷
什么时候会出现inf(+inf,-inf):
比如一个数字除以0,(python中会直接报错,numpy中是一个inf或者-inf)

numpy中的nan注意点
·两个nan是不相等的
·np.nan!=np.nan
·利用以上的特性,判断数组中nan的个数(通过t!=t来得到判断数组,其中true的个数就是nan的个数)
·通过np.isnan(a)来判断,返回bool类型
·nan和任何值计算都为nan
在这里插入图片描述
那么问题来了,在一组数据中含有nan从而无法计算,我们该怎么办呢?
一般的方式是把缺失的数值替换为均值(中值)或者直接删掉有缺失值的一行。

求值方法(axis,轴)
求和t.sum(axis=None)
均值t.mean(axis=None)受离群点的影响较大
中值np.median(t,axis=None)
最大值t.max(axis=None)
最小值t.min(axis=None)
极值np.ptp(t,axis=None)
标准差t.std(axis=None)

数组的拼接

语法:

np.vstack((a,b))
#数组a与数组b竖直拼接
np.hstack((a,b))
#数组a与数组b水平拼接,a,b位置同拼接位置

import numpy as np
t=np.array(range(54)).reshape((6,9)).astype("float")
t0=np.array(range(54,108)).reshape((6,9)).astype("float")

在这里插入图片描述
在这里插入图片描述

数组的行列交换

语法

t[[a,b],:]=t[[b,a],:]
#a行与b行互换位置
t[:,[a,b]]=t[:,[b,a]]
#a列与b列互换位置

import numpy as np
t=np.array(range(54)).reshape((6,9)).astype("float")
t0=np.array(range(54,108)).reshape((6,9)).astype("float")

在这里插入图片描述

在这里插入图片描述

numpy生成随机数

numpy中random也提供了很多方法

方法及参数解释
.rand(d0,d1…,dn)创建d0-dn维度的均匀分布的随机数数组,浮点数,范围从0-1
.randn(d0,d1…,dn)创建d0-dn维度的标准正态分布随机数,浮点数,平均数0,标准差1
.randint(low,high,(shape))从给定上下限范围选取随机数整数,范围是low,high,形状是shape
.uniform(low,high,(size))产生具有均匀分布的数组,low起始值,high结束值,size形状
.normal(loc,scale,(size))从指定正态分布中随机抽取样本,分布中心是loc(概率分布的均值),标准差是scale,形状是size
.seed(s)随机数种子,s是给定的种子值。因为计算机生成的是伪随机数,所以通过设定相同的随机数种子,可以每次生成相同的随机数

在这里插入图片描述
在这里插入图片描述

numpy其它一些好用的方法

用途方法
获取最大值的位置np.argmax(t)(可加轴参数)
获取最小值的位置np.argmin(t)(可加轴参数)
创建一个全0的数组np.zeros((a,b)),a、b为数组形状
创建一个全1的数组np.ones((a,b)),a、b为数组形状
创建一个对角线为1的正方形数组(方阵)np.eye©

在这里插入图片描述

numpy的注意点copy(复制)和view(视图)

·a=b,完全不复制,a和b相互影响
·a=b[:],试图的操作,一种切片,会创建新的对象a,但是a的数据完全由b保管,他们两个的数据变化是一致的
a=b.copy(),复制,a和b互不影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值