利用Python进行数据分析第四章:Numpy基础-数组和矢量计算

本章主要内容概览:

1、用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组计算

2、常用的数组算法:排序、唯一化、集合运算

3、高效的描述统计和数据聚合(摘要)运算

4、用于数据集的合并/连接运算的数据对齐和关系型数据运算

5、将条件逻辑表述为数组表达式

6、数据的分组运算(聚合、转换、函数应用等)

本章重点内容:

一、Numpy的多维数组

  ndarray是一个通用同构数据多维容器,也就是说,其中所有元素必须是相同类型的。

创建多维数组ndarray=np.array(),参数是一切序列型的对象(列表,元组,数组等)(包括其他数组),嵌套序列(例如一组等长列表组成的列表)也会被转换成一个多维数组

np.zeros()创建一个指定长度全为0的数组;np.ones()创建一个指定长度全为1的数组。np.empty()创建一个空数组

1、常用数组创建函数:

import Numpy as np

array()

asarray()将输入转换为数组

arange()返回一个多维数组,而不是列表

zeros()

ones()

empty()

eye(), identity()创建一个指定的N维单位矩阵

2、Numpy数据类型

浮点数,整数,字符串,布尔值,复数,对象

数据类型转换方法astype()

3、数组的索引和切片

取数组一个元素arr[i]

取数组多个元素arr[i:j]

对于多维数组来看,各索引位置上的元素不再是标量而是一维数组

切片索引

一维数组arr[1:6] 

多维数组arr[1:2,2:3]

布尔型索引

取出条件为真值的元素arr[Ture, False, True, False]

布尔运算符:!=不等于 -否定   &与 |或

花式索引

以特定顺序选取子集,只需传入一个用于特定顺序的整数列表或多维数组

arr[[1,2,3,4]]

多个索引数组

arr[[1,5,7,2],[0,3,2,1]]

array([4,23,29,10])

arr[[1,5,7,2]][:[0,3,2,1]]

arr[np._ix([[1,5,7,2],[0,3,2,1]])]

数组转置和轴对换

二维数组矩阵 方法.T

多维数组的方法 .swapaxes(1,2)

4、通用函数:快速的元素级数组函数

通用函数就是对多维数组中的每个元素执行相同的运算

一元通用函数表

abs()绝对值函数;sqrt()平方根;square()平方;exp()指数函数;log、log10、log2自然对数、底数为10,2

sign()符号函数;ceil()求大于等于该值的最小整数;floor()小于等于该值得最小整数;rint()四舍五入最近的整数

modf()将数组的小数和整数部分以两个独立数组形式返回;isnan()确定元素是否是NaN,返回一个布尔型数组

二元通用函数表

add()将数组中对应的元素相加

subtract()从第一个数组中减去第二个数组中的元素

multiply()数组元素相乘

divide()除法 floor_divide()丢弃余数

power()第一个数组A,第二个数组B,A为底,B为幂

maximum()最大值,fmax()忽略NaN minimum(),fmin()

mod()求余数

greater、greater_equal、less、less_equal、equal、not_equal元素级的比较运算符,产生布尔型数组,大于、大于等于、小于、小于等于、等于、不等于

logical_and logical_or logical_xor 执行元素级的真值运算,相当于&、|、^

数组表达式代替循环叫做矢量化

5、将条件逻辑表述为数组运算

主要函数np.where(cond, x, y)cond条件,满足条件数组x,否则数组y。还可以嵌套

6、数学统计方法

.mean(),.sum()这类函数可以接受一个axis参数

常用函数和方法

sum(),  mean(), std(),var(), min(),max(),argmin(),argmax()分别为最大和最小元素的索引

cumsum()所有元素的累积和 cumprod()所有元素的累积()

7、布尔型数组的方法()

.any()  .all()

8、唯一化函数及集合的运算

np.unique()删除数组中重复的值返回有序结果

intersect1d(x,y)计算x y中公共元素,返回有序结果

union(x,y)计算x和y中的并集

in1d(x,y)得到一个表示:x的元素是否包含于y中的布尔型数组

setdiff1d(x,y)集合的差,在x中,不在y中

二、用于数组的文件输入和输出

Numpy能够读写磁盘上的文本数据和二进制数据。pandas主要读取表格型数据

两个主要函数np.save()和np.load()

存取文本文件np.loadtxt()和np.genfromtxt()

三、线性代数

x.dot(y)矩阵x,y的乘积   相当于np.dot(x,y)

常用的numpy.linalg函数

diag()以一维数组的形式返回方阵的对角线元素,或者将一维数组转换为方阵(非对角线元素为零)

dot()矩阵乘法

trace()计算对角线元素的和

det()计算矩阵行列式

eig()计算方阵的特征向量和特征值

inv()计算方阵的逆

pinv()计算矩阵的Moore-Penrose伪逆

qr()计算奇QR分解

svd()计算奇异值分解(SVD)

solve()解线性方程组Ax=b,其中A为一个方阵

lstsq()计算Ax=b的最小二乘解

四、随机数的生成

numpy.random模块常用的函数

seed()确定随机数生成器的种子

permutation() 返回一个序列的随机排列或返还一个随机排列的范围

shuffle()对一个序列就地随机排列

rand()产生均匀分布的样本值

randint()从给定的上下限范围内随机取整数

randn()产生均值为0,标准差为1的正态分布的样本值

normal()产生正态分布的样本值

binomial()产生二项分布的样本值

beta()产生Beta分布的样本值

chisquare()产生卡方分布的样本值

gamma()产生Gamma分布的样本值

uniform()产生在[0,1)中均匀分布的样本值


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值