博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
numopy学习笔记
阅读量:764 次
发布时间:2019-03-23

本文共 2214 字,大约阅读时间需要 7 分钟。

numpy 的属性: shape(数组维度的元组)、ndim(数组维数)、size(数组元素数量)、itemsie(一个数组元素的长度字节)、dtype(元素类型)

创建数组指定类型:

np.array([1.1,2.2,3.3], dtype = ‘float32’)
3.3.1生成数组
生成0和1
np.zeros(shape=[ , ], dtype=" ")
np.ones(shape)
从现有数组中生成
np.array() 深拷贝
np.copy() 深拷贝
np.asarray() 浅拷贝
生成固定范围的数组
np.linspace(0, 10, 100) 生成[0,10] 等距100个元素

np.arange(a, b, c) 生成[a, b) c是步长

生成随机数组

np.random模块
均匀分布:每组可能性相等
np.random.rand(d0,d1,…,dn):返回[0.0, 1.0)内的一组均匀分布的数。
np.random.uniform(low=0.0,high=1.0,size=None)
low:采样下界,float,默认0
high:上界,float,默认1
size:输出样本数目,为int或tuple元组类型,例如,size=(m,n,k),则输出mnk个样本,缺省时输出1个值
返回值:ndarray类型,其形状和参数size中描述一直

np.random.randint(low, high=None,size=None, dtype=‘I’):从一个均匀分布中随机采样,生成一个整数或n维数组,取数范文:若high不None时,取lowhigh之间随机整数,否则取0low之间随机整数

正态分布:概率分布。μ=0,thegma=1时标准正态分布

np.random.normal(loc=0.0, scale=1.0,size=None)

loc:float 此概率分布均值
scale:float 此概率分布的标准差,对应分布宽度,scale越大越矮胖,越小越瘦高
size:int or tuple of ints,输出的shape,默认为None,只输出一个值
np.random.standard_normal(size = None)
返回指定形状的标准正态分布的数组。

3.3.2数组的索引切片

3.3.3形状修改

ndarray.reshape() 返回新的adarray,原始数据没有改

adarray.resize(shape) 没有返回值,对原始ndarray进行了修改

ndarray.T 转置,行变列,列变行
3.3.4类型修改
ndarray.astype(type)
ndarray.astype(“int32”)
ndarray序列化到本地
ndarray.tostring()

3.3.5数组去重

ndarray.unique()
不能直接用set函数,如果要用,可先用flatten函数拍扁为一维再使用。如图

ndarray运算

逻辑运算
布尔索引
例:

通用判断函数

np.all(布尔值)
只要有一个False就返回False,只有全是True才返回True
np.any()
只要有一个True就返回True,只有全是False才返回False

三元运算符np.where

np.where(布尔值,True位置的值,False位置的值)

统计运算

统计指标函数
min, max, mean, median, var, std(标准差)
np.函数名
axis=1和axis=-1是一样的索引,不同库可能不同,最保险还是都试一试

返回最大值、最小值所在位置

np.argmax()
np.armin()

数组间运算

场景:计算学生平时成绩和期末成绩求出最终成绩
数组与数的运算

数组与数组的运算

广播机制:执行broadcast的前提在于,两个ndarray执行的是element-wise的运算,Broadcast机制的功能是为了方便不同形状的ndarray(numpy库的核心数据结构)进行数学运算
当操作两个数组时,numpy会诸葛比较他们的shape,只有在维度相等,shape(其中相对应的一个地方为1)时才能够进行数组与数组的运算。例如

矩阵运算

两种方法存储矩阵
1.ndarray 二维数组
np.matmul()
np.dot()
data_arry @ weights
2.matrix
data_mat * wights_mat

矩阵的乘法运算:

形状:(m, n)*(n, l) = (m, l)

合并、分割:

合并:
np.hstack() 水平拼接

np.vstack()竖直拼接

np.concatenate():即可水平拼接也可竖直拼接

分割:

numpy.split(ary, indices_or_section, axis=0) split an array into multiple sub_arrays

IO操作和数据处理

numpy读取:np.genfromtxt(’****.csv’, delimiter=",")
存在缺失值nan一般不用numpy读取。
如何处理缺失值:
1.直接删除含有缺失值样本数据
2.替换或插补法,样本数据少时,可以按列算平均值来替换
处理逻辑:

转载地址:http://psnzk.baihongyu.com/

你可能感兴趣的文章