Python数据挖掘 - Numpy基础篇

Numpy

简介

Numerical Python,是一个开源的科学计算库,用于快速处理任意维度的数组,Numpy支持常见矩阵操作,对于数值计算,Numpy的计算比直接的Python计算更加简洁

ndarray是Numpy处理多维数组的对象,ndarray是灵活、快速的大数据容器(n-任意,d-dimension维度,array-数组)

优势

  • 存储风格:与list不同,ndarray要求存储数据类型相同,存储查找效率高
  • 并行计算:ndarray支持并行运算(向量化计算),非常适合机器学习
  • 底层语言:使用C语言编写,内部解除了GIL,对数组的操作不受Python解释器限制,效率远高Python

ndarray属性

属性名解释
ndarray.shape返回一个包含行,列信息的元组
ndarray.ndim返回ndarray的维度
ndarray.size返回元素总和
ndarray.dtype返回元素类型

ndarray类型

类型解释简写
np.bool用一个字节存储的布尔类型(True或False)‘b’
np.int8一个字节大小,-128至127‘i’
np.int16整数,-216 至 216 -1‘i2’
np.int32整数,-232 至 232 -1‘i4’
np.int64整数,-263 至 263 -1‘i8’
np.uint8无符号整数,0至255‘u’
np.uint16无符号整数,0至65535‘u2’
np.uint32无符号整数,0至232 -1‘u4’
np.uint64无符号整数,0至264 -1‘u8’
np.float16半精度浮点数:16位,正负号1位,指数5位,精度10位‘f2’
np.float32单精度浮点数:32位,正负号1位,指数8位,精度23位‘f4’
np.float64双精度浮点数:64位,正负号1位,指数11位,精度52位‘f8’
np.complex64复数,分别用两个32位浮点数表示实部和虚部‘c8’
np.complex128复数,分别用两个64位浮点数表示实部和虚部‘c16’
np.object_python对象‘O’
np.string_字符串‘S’
np.unicode_unicode类型‘U’

ndarray生成

方法解释
np.zeros(shape=(行,列))生成全为0的ndarray
np.ones(shape=(行,列))生成全为1的ndarray
np.full(shape=(行,列),88)生成全为88的ndarray
np.array(数据)最常用的数据转ndarray方法,深拷贝
np.copy(数据)深拷贝
np.asarray(数据)浅拷贝吗,跟随原数据改变
np.linspace(起始,结束,个数)生成固定范围的ndarray(左闭右闭,等距离)
np.arange(起始,结束,步长)生成固定范围的ndarray(左闭右开)
np.random.uniform(low=最小值,high=最大值,size=个数)生成均匀分布的随机数组
np.random.normal(loc=μ,scale=σ2 ,size=个数)生成正太分布的随机数组

基本操作

切片索引

  • ndarray支持切片操作,[ ::]
操作解释
ndarray[::,::]切片
ndarray[ , , ]索引

形状修改

方法解释
ndarray.reshape((行,列))列代表个数,即每一行有几个(返回新ndarray)
ndarray.resize((行,列))列代表个数,即每一行有几个(在原有ndarray上修改)
ndarray.T将行列进行转置

类型修改、去重

方法解释
ndarray.astype(“类型”)数据类型转化
ndarray.tostring()序列化到本地
np.unque(ndarray)数组去重

重点操作

逻辑运算

操作解释
nparray[nparray 条件]满足条件的数字返回true,不满足返回false
nparray[nparray 条件] = 值给满足条件的数据进行统一赋值操作
np.all(nparray[nparray 条件])里面全部满足条件,返回true,否则返回false
np.any(nparray[nparray 条件])里面只要有满足条件的,返回true,否则返回false
np.where(布尔,true操作,false操作)三元运算符
np.logical_and(ndarray 条件1,ndarray 条件2)多条件逻辑与操作,返回布尔数组
np.logical_or(ndarray 条件1,ndarray 条件2)多条件逻辑或操作,返回布尔数组

统计运算

操作解释
np.max(ndarray) | ndarray.max()
max、min、std、mean用法类似
返回所有值的
np.max(ndarray,axis=),axis=0代表按列,=1代表按行0,获取每列最值;1,获取每行最值
ndarray.argmin(axis=1)获取每行最小值所在的索引

数组间运算

操作解释
ndarray +(-、*、/) 数字ndarray所有元素与该数字运算
ndarray+ndarray两个ndarray符合广播机制
np.mat(ndarray)存储矩阵(matrix类型)

矩阵运算

  • 满足前列与后行相同:(M,N)*(N,L)=(M,L)前行乘后列
  • ndarray的矩阵乘法运算:
操作解释
ndarray1 @ ndarray2矩阵乘法,需满足(m,n)*(n,l)
np.matmul(ndarray1,ndarray2)同上
np.dot(ndarray1,ndarray2)同上
  • matrix类型矩阵相乘运算:mat1*mat2
  • 在ndarray中,linalg提供了:np.linalg.det(ndarray)、np.linalg.inv(ndarray)求行列式、逆矩阵
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值