2020.7.21 Numpy 基础2
发布于 2020-07-21 35 次阅读
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左侧双击
-
标准差公式
-
-
单位矩阵
- 左上角开始到右下角都是1,其余全为0,就是单位矩阵

-
逆矩阵
*
-
离散程度
-
正态分布
- 中间高,两边低

-
矩阵运算
- 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.学习成果&问题
均匀分布生成
- 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,只输出一个值
- loc:float
-
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
- newshape新的格式--整数或整数数组
- np.resize(对象,shape)
- 修改对象的值,按照shape形状
- 进行行列互换,对原值进行更改
- 对象.T
- 进行行列互换
- 对象.reshape(newshape,order=‘B’)
-
类型修改
- 对象.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支持矩阵和数字相乘
-
jupyter notebook 关闭out
- 关闭Out 在out左侧双击
-
标准差公式
-
-
单位矩阵
- 左上角开始到右下角都是1,其余全为0,就是单位矩阵

-
逆矩阵
*
-
离散程度
-
正态分布
- 中间高,两边低

-
矩阵运算
- 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
- 0.基础导读
- numpy数组内存
3.灵感代办
- yaml 使用
- picgo更新
- 服务器的图片
4.复习内容
5.学习成果&问题
5.学习成果&问题
