2020.7.21 Numpy 基础2 发布于 2020-07-21 34 次阅读 Table of Contents 1.学习内容 均匀分布生成 np.random.uniform() low high size 正态分布 数据两边低,中间稿,都可以算正态分布图 均值,方差 均值:图形的左右(距离原点0)位置 方差:图的高低胖瘦 值越小,图形越高,数据越集中 值越大,图形越矮胖,数据越分散 正态分布创建(高斯Gaussian 分布) np.random.randn() 参数是多少,就带代表随机生成多少个元素 几个参数就是几维数组 np.random.normal(loc=0.0,scale=1.0,size=None) loc:float 此概率分布的均值(对应着整个分布的中心centre) scale:float 此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高) size:int or tuple of ints 输出的shape,默认为None,只输出一个值 np.random.standard_normal(size=None) 跟randn一样,也是返回标准正态分布的数组,不同的是它的shape由size参数指定,对于多维数组,size必须是元组形式; https://www.cnblogs.com/luckyboy314/p/11715643.html 数组索引、切片 直接索引 2:2 就是2行连续两个数据 先对行索引,在对列索引 高纬度数组从宏观到微观(从外层选,在到内层) 形状修改 对象.reshape(newshape,order=‘B’) newshape新的格式--整数或整数数组 新的形状应该与原来的形状兼容, 行数和列数相乘后等于a中元素的数量 order: 可选范围为{‘C’, ‘F’, ‘A’} 不改变数据内容的情况下,改变一个数组的格式(形状) 不进行行列互换,产生新的变量 https://www.jianshu.com/p/fc2fe026f002 np.resize(对象,shape) 修改对象的值,按照shape形状 进行行列互换,对原值进行更改 对象.T 进行行列互换 类型修改 对象.astype(dtype) int64 数组的去重 np.unique(arr) ndarray 运算 ndarray索引支持数组 ndarray[[1,2]] 逻辑运算 (大于 小于 等等) ndarray > 1 满足要求为True 不满足为False ndarray[ndaaray > 1] = 1 满足要求直接复制 通用判断函数 np.all() 满足所有要求 返回True np.any() 满足一个要求 返回True 三元运算符 np.where() 满足要求赋值第一个,不满足赋值第二个 np.where(ndarray>1(条件),1,0) np.logical_and() 两个条件 np.logical_or() 任意一个条件 统一运算 axis 0 列 1 行(axis不一定都这样) 直接使用ndarray对象调用 min() max() midian() 中位值 mean() 均值 std() 标准差 var() 方差 argmax() 第一个最大值 argmin() 第一个最小值下标 矩阵 1.矩阵和向量 矩阵:二维数组 向量:一维数组 2.加法和标量乘法 加法:对应位相加(多维数组个数相同) 乘法:标量和每个位置的元素相乘 3.矩阵向量 矩阵(乘法) [M行,N列]*[N行,L列]=[M行,L列] 4.矩阵乘法性质 满足结合律,不满足交换律 5.单位矩阵 对角线为1,其他位置为0的矩阵 6.逆矩阵 矩阵A*矩阵B = 单位矩阵‘ 那么A和B互为逆矩阵 7.转置 行列互换 数组间运算 1.数组和数字是直接可以进行运算 2.数组和数组(形状相同,形状不同) 当两个数组的形状并不相同的时候,我们可以通过扩展数组的方法来实现相加、相减、相乘等操作,这种机制叫做广播(broadcasting)。 需要满足广播机制 数组维度相同 shape(对应位置为1) https://www.cnblogs.com/jiaxin359/p/9021726.html 广播机制 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式 即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘 当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制 import numpy as np a = np.array([[ 0, 0, 0], [10,10,10], [20,20,20], [30,30,30]]) b = np.array([1,2,3]) print(a + b) 广播的规则 像最长的数组看齐(做运算) 输入数组,长度相同,或者长度为1, 可以计算(5,5)(5,)可以运算 可以计算(5,5)(5,2)不可以运算 矩阵乘法api np.dot 点乘 np.matmul 矩阵相乘 注意: 两者之间在进行矩阵相乘没有区别 dot支持矩阵和数字相乘 2.扩展延伸知识 jupyter notebook 关闭out 关闭Out 在out左侧双击 标准差公式 σ=1N∑i=1N(xi−μ)2 单位矩阵 左上角开始到右下角都是1,其余全为0,就是单位矩阵 逆矩阵 * 离散程度 1、通过对随机变量取值之间离散程度的测定,可以反映各个观测个体之间的差异大小,从而也就可以反映分布中心的指标对各个观测变量值代表性的高低。 2、通过对随机变量取值之间离散程度的测定,可以反映随机变量次数分布密度曲线的瘦俏或矮胖程度。 三个知识点:极差,平均差,标准差, 正态分布 中间高,两边低 矩阵运算 0.基础导读 行数:横着的是行 列数:竖着的是列 单位矩阵:单位矩阵是一个n×n矩阵,从左到右的对角线上的元素是1,其余元素都为0 逆矩阵:矩阵A的逆矩阵记作A-1, A A-1=A-1A= I,I是单位矩阵。 对称矩阵: 如果一个矩阵转置后等于原矩阵,那么这个矩阵称为对称矩阵。 1.一个数和矩阵相乘, 数字和每一个矩阵里的元素相乘 2.两个相同形状矩阵做加减 就是每位数字做运算 简言之,两个矩阵相加减,即它们相同位置的元素相加减! 3.矩阵与矩阵相乘 两个矩阵A和B相乘,需要满足A的列数等于B的行数。 矩阵乘法不满足交换律,但仍然满足结合律和分配律: https://www.cnblogs.com/bigmonkey/p/7646005.html 写的通俗 https://blog.csdn.net/qq_27245709/article/details/74332467 numpy数组内存 3.灵感代办 yaml 使用 picgo更新 服务器的图片 4.复习内容 5.学习成果&问题