numpy常用方法

numpy 的使用 [时间:2020年2月]

数据的加载
#常用参数
np.loadtext(frame,delimiter,dtype,skiprows,usecols,unpack)

#eg
file_path = ""
np.loadtext(file_path,delimiter=",",dtype="int",skiprows=0,usecols=(0,),unpack=ture)
参数注释
frame文件、字符串或产生器,可以是.gz或bz2压缩文件,可以加载多种文件类型
delimiter文件的分割符,默认是任何空格
dtype数据类型,默认是np.float
skiprows跳过几行
usecols读取制定的列,索引,元组类型
unpack如果是ture,读入属性将分别写入不同数组变量,False读入数据只写入一个数组变量,默认False ,起到转置的作用,转置的轴是对角线
创建numpy数据对象 (常用)

1.numpy.array()

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
#eg 
numpy.array([1,  2,  3, 4, 5], dtype=int,copy=True,ndmin=2)  
参数注释
object数组或嵌套的队列
type数组元素的数据类型
copy对象是否可复制
order创建数组的方向 C行方向 F列方向 A任意方向,默认A
subok默认返回一个与基类类型一致的数组
ndmin生成数组的最小纬度

2.numpy.arange()

numpy.arange(start,stop,step,dtype)
#eg
numpy.arange(1,5,1,dtype=float)
参数注释
start开始值,默认0
stop结束值
step步长
dtype数据类型,默认None,元素的原类型

3.numpy.zeros & numpy.ones

numpy.zeros(shape,dtype=float,order = 'C')
#eg
numpy.zeros((2,2),dtype=float,order='C')
参数注释
shape数组的形状,元组,eg:(1,)、(2,3)
dtype数据类型 ,int ,float
order是否在存储器中以C或Fortran连续(按行或列方式)存储多维数据,默认C
常用操作
a = np.array([1,2,3,4],[5,6,7,8]) 
#切片和索引
a[2]	#选择行
a[2:,3] #选择行是第二行开始到最后一行,列是第3列 
a[2,1:] #选择行是第二行,列是从第一列到最后一列
a[[1,2],[3,4]] #选择(1,3)、(2,4) 两个列 


#布尔
a[a>10] #a中大于10的数


#三元运算符
np.where(a>1,20,10) #把a中大于1的替换为20,小于1的替换为10 


#裁剪
a.clip(10,20) #把小于10的替换为10,大于20的替换为20 


#转置
a.T
a.transpose
a.swapaxes(1,0)

#常用统计函数
a.sum(axis=0) #按照0轴求和
a.mean(axis=0) #求均值 
a.median(axis=0) #求中位数 
a.max(axis=0) #求最大值
a.min(axis=0) #求最小值 
a.ptp(axis=0) #就极差
a.std(axis=0) #标准差




空值处理
#                   判断空值
a[a.nan != a.nan]   #方法1
a[np.isnan[a]]		#方法2

#完整代码
import numpy as np  

#需求 把nan替换为每一列均值
#数据准备
nump = np.arange(20).reshape(4,5).astype('float')

#把(1,3)、(2,4) 置为空值
nump[[1,2],[3,4]] = np.nan

#遍历每一列  判断是否存在nan,存在就计算均值,然后赋值
for i in range(nump.shape[1]):
    temp_col = nump[:,i] #当前列 
    num = np.count_nonzero(temp_col != temp_col) #统计nan的个数     
    if num != 0 :  #有空值
        temp_mean = temp_col[temp_col == temp_col].mean() #不为均值
        temp_col[temp_col != temp_col] = temp_mean #替换





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值