矩阵转置

day18学习整理-Python模块

孤街醉人 提交于 2019-11-27 21:25:32
目录 2019/08/16 学习整理 函数进阶(模块) numpy模块 创建矩阵(掌握) 获取矩阵的行列数(掌握) 切割矩阵(掌握) 矩阵元素替换(掌握) 矩阵的合并(熟悉) 通过函数创建矩阵(掌握) arange linspace/logspace zeros/ones/eye/empty fromstring/fromfunction(了解) 矩阵的运算(掌握) 普通矩阵运算 常用矩阵运算函数(了解) 矩阵的点乘(掌握) 矩阵的转置(掌握) 矩阵的逆(掌握) 矩阵其他操作(熟悉) 最大最小值 平均值 方差 标准差 中位数 矩阵求和 累加和 numpy.random生成随机数(熟悉) pandas模块 Series(熟悉) DataFrame(掌握) DataFrame属性(掌握) DataFrame取值(掌握) loc/iloc 使用逻辑判断取值 DataFrame值替换(掌握) 读取CSV文件(掌握) 处理丢失数据(掌握) 导入导出数据(掌握) 合并数据(掌握) 读取sql语句(熟悉) matplotlib模块 条形图(掌握) 直方图(掌握) 折线图(掌握) 散点图+直线图(掌握) 2019/08/16 学习整理 函数进阶(模块) 建议学习的时候去看官方文档学习 numpy模块 numpy官方文档: https://docs.scipy.org/doc/numpy

2019年8月19日矩阵

自闭症网瘾萝莉.ら 提交于 2019-11-27 21:07:07
矩阵 相乘最重要的方法是一般矩阵 乘积 。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 [1] 。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。 定义 设 A 为 的矩阵, B 为 的矩阵,那么称 的矩阵 C 为矩阵 A 与 B 的乘积,记作 ,其中矩阵C中的第 行第 列元素可以表示为: 如下所示: 注意事项 当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。 矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。 乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。 基本性质 乘法结合律: ( AB ) C = A ( BC ). [2] 乘法左分配律:( A + B ) C = AC + BC [2] 乘法右分配律: C ( A + B )= CA + CB [2] 对数乘的结合性 k ( AB )=( kA ) B = A ( kB ). 转置 ( AB ) T= B T A T. 矩阵乘法一般不满足交换律 [3] 。 乘积-哈达马积( hadamard product) 矩阵 与 矩阵 的Hadamard积记为 。其元素定义为两个矩阵对应元素的乘积 的 m×n 矩阵 [2] 。例如,

冈萨雷斯Matlab版第二章(基本原理)要点记录

こ雲淡風輕ζ 提交于 2019-11-27 16:22:56
标准数组生成 zero(M, N) 生成一个大小是M N的double类矩阵,其元素均为0 ones(M, N) 生成一个大小是M N的double类矩阵,其元素均为1 ture(M, N) 生成一个大小是M N的logical类矩阵,其元素均为1 false(M, N) 生成一个大小是M N的logical类矩阵,其元素均为0 magic(M) 生成一个大小均为M N的“魔方矩阵”,在该矩阵中,每一行的元素之和、每一列的元素之和以及主对角线中的元素之和均相等,易于生成,元素均为整数 rand(M, N) 生成一个大小是M N的矩阵,其元素都是在区间[0,1]中均匀分布的随机数 randn(M, N) 生成一个大小是M*N的矩阵,其元素是正态分布的随机数,随机数均值为0,方差为1 数组和矩阵算术运算符 图像是等价于矩阵的二维数组,因此以下所有运算符均适用于图像 .* 表示数组乘法, times(A, B) 这种乘法的乘积是与A和B大小相同的数组,其每个元素都是A和B中相应元素的乘积 * 表示传统意义的矩阵乘法 mtimes(A, B) ./ 数组右除 rdivide()A, B .\ 数组左除 ldivide(A, B) / 矩阵右除 mrdivide(A, B) \ 矩阵左除 mldivide(A, B) .^ 数组求幂 power(A, B) ^ 矩阵求幂 mpower(A,

线性代数Part2

情到浓时终转凉″ 提交于 2019-11-27 15:48:00
14 正交向量与正交子空间 正交向量 正交就是垂直的另一种说法。两向量正交的判据之一就是其点积 当两个向量的夹角为90度的时候,按照勾股定理x,y满足: 正交子空间 子空间S与子空间T正交,则S中任意一个向量都与T中任意一个向量正交。 15 子空间投影 投影 几何解释:在向量a上寻找与向量b距离最近的一点。从图中可以看出距离点p最近就是穿过b点并与向量a正交的直线与向量a所在直线的交点上。这就是b在a上的投影。如果我们将向量p视为b的一种近似,则长度e=b-p就是这一近似的误差。 因为p在向量a的方向上,因此可以令p=xa,而因为它与e正交,我们可以得到方程: 解得: 投影矩阵 将投影问题用投影矩阵方式进行描述,即p=Pb,其中P为投影矩阵。 则有: 在高维投影 如果a1和a2构成平面的一组基,则平面就是矩阵A=[a1a2]的列空间 已知向量p在平面内,则有 而: 与平面正交,因此e与a1和a2均正交,因此 16 投影矩阵和最小二乘法 投影 如果向量b本身就在A列空间之内,即存在x使得Ax=b,则有: 如果向量b与A的列空间正交,即向量b在矩阵的左零空间N(A)中: 最小二乘法 最优解的含义即为误差最小,这里误差就是每个方程误差值的平方和 误差即为数据点到直线距离的平方和。 对于空间向量b,投影矩阵A的列向量中得到p=[p1 p2 p3]T,投影到矩阵A的零空间中则为e。 17

标量、向量、矩阵、张量

大兔子大兔子 提交于 2019-11-27 15:47:47
标量(saclar ) : 就是一个单独的数,没有方向,只具有数值大小,用斜体来表示,被赋予 小写的变量 名称,比如 斜体小写字母 k 可以表示一条线的斜率, n 可以表示一个集合中元素的数目。 向量(vector): 一个向量是一列数,这些数是有序排列的,通过次序中的索引,我们可以确定每个单独的数,通常用 粗体的小写变量 名称表示,比如 , 向量中的元素可以通过带脚标的斜体表示。 向量 x 的第一个元素是 x 1 ,第二个元素是 x 2 ,等等。我们也会注明存储在向量中的元素是什么类型的。如果每个元素都属于实数集 R,并且该向量有 n 个元素,那么该向量属 于实数集 R 的 n 次笛卡尔乘积构成的集合,记为 R n 。当我们需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的总队: 我们可以把向量看作空间重的点,每个元素使不同的坐标轴上的坐标。 有时候我们需要索引向量中的一些元素。在这种情况下,我们定义一个包含这些元素的索引集合,然后将该集合写在脚标处。比如,指定x 1 ,x 3 和x 6 ,我们定义集合s={1,3,6},然后写 作x s。我们用符 - 表示集合的补集中的索引。 比如x_ 1 表示x中除了x 1 以外的所有元素,x _s 表示x中除了x 1 ,x 3 和x 6 外所有的元素构成的向量。 矩阵(matrix): 矩阵是一个二维数组

Python数据分析-Numpy

放肆的年华 提交于 2019-11-27 15:19:47
Numpy特点 Numpy作为使用Python进行科学计算的常用库,有着如下特点: 提供了N维数组(矩阵),快速高效,矢量数学运算; 高效的Index,不需要循环,因为底层实现采用了C语言开发。 常见的数组和矩阵的方法 数组和矩阵的创建与维度信息 numpy.array() ## 数组的创建 vector = numpy.array([1,2,3,4]) ## 矩阵的创建 matrix = numpy.array([ [1,2,3], [4,5,6], [7,8,9] ]) shape ## 打印数组的维度信息 vector.shape() ——》(4,) # 数组中存在4个元素 ## 打印矩阵的维度信息 matrix.shape()——》(3,3) #三行三列 reshape eg: a = np.arange(15).reshape(3, 5) #随机创建3行5列的矩阵 Out: [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] a.ndim # 返回其维数 即 2 注意: reshape可以创建一个改变了尺寸的新数组,但是原始数组的shape是不会发生变化的。 reshape(-1) :数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。 eg: z = np

无监督学习——降维

亡梦爱人 提交于 2019-11-27 11:12:37
降维算法应用:数据压缩、数据可视化。 主成分分析 ( PCA ) 是最常见的降维算法。 在 PCA 中,我们要做的是找到一个方向向量( Vector direction ), 当我们把所有的数据 都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。方向向量是一个经过原点 的向量,而投射误差是从特征向量向该方向向量作垂线的长度。 PCA算法推导 关于PCA算法推导我觉得还是挺复杂的。之前在做数模比赛时,经常用到PCA算法, 但是都是拿来直接套用解决实际问题,根本没有仔细思考原理推导。 这里总结一下PCA算法原理推导中用到的两个重要原理: 特征值分解矩阵和SVD分解矩阵。 1. 特征值分解矩阵原理 (1) 特征值与特征向量 如果一个向量v是矩阵A的特征向量,将一定可以表示成下面的形式: 其中,λ是特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。 (2) 特征值分解矩阵 对于矩阵A,有一组特征向量v,将这组向量进行正交化单位化,就能得到一组正交单位向量。 特征值分解 ,就是将矩阵A分解为如下式: 其中,Q是矩阵A的特征向量组成的矩阵, 则是一个对角阵,对角线上的元素就是特征值。 2. SVD分解矩阵原理 奇异值分解是一个能适用于任意矩阵的一种分解的方法,对于任意矩阵A总是存在一个奇异值分解: 假设A是一个m*n的矩阵,那么得到的U是一个m*m的方阵

DirectX 总结

强颜欢笑 提交于 2019-11-27 09:49:40
DDS DirectXDraw Surface file format, .dds。 这是微软从DirectX7开始引进的一种文件格式,它用来存储压缩的或未压缩的纹理,该格式支持mimaps cube maps和volume maps, D3DX和许多其他的DX工具都支持这种格式,比如DirectX Texture Editor(dxtex.exe)和Texture Conversion Tool(Texconv.exe),从D3D110开始,DDS文件也支持纹理数组 DXGI DirectX Graphics Infrastructure 转换为.x格式 MeshConvert.exe,这个tool位于Microsoft DirectX SDK \Utilities\bin\x86目录下面,可以用来转换.x文件,支持.x, .obj, .sdkmesh格式之间的相互转换,.sdkmesh是微软新的格式在DX10/DX11之后使用,用来取代.x格式,MeshConvert是一个命令行工具,使用方法如下 Usage: meshconvert <options> <input filename> <input filename> Input mesh filename. The input file can be of .x, .obj, or .sdkmesh format /o

蚁群算法

天大地大妈咪最大 提交于 2019-11-27 07:15:53
TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径, 路径的限制是每个城市只能拜访一次(通过禁忌表) ,而且最后要回到原来出发的城市,要求路径的总和最小 蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,首先使用在解决TSP(旅行商问题)上。 人工蚁群与真实蚁群对比: 相同点 不同点 都是为了寻找最短路径问题 人工蚁群具有记忆功能 都存在个体间的信息交互问题 人工蚁群的选择并不盲目性 都采用根据当前的信息进行随机选择策略 人工蚂蚁生活在离散的时间环境中 代码部分: 蚁群算法实现核心有两点 :1,蚂蚁如何选择下一个城市;2,城市间路径信息素如何更新。 a. 计算城市之间的转移概率: % 计算城市之间的转移概率 for k = 1:length(allow) P(k) = Tau(tabu(end),allow(k))^alpha * Eta(tabu(end),allow(k))^beta; %等式的分子 End P = P/sum(P); %上面等式的分母部分 在计算出来城市之间的转移概率之后还要用轮盘赌法的原因: 在得到剩下去城市概率,产生一个随机数,基于随机数决定去下面哪一个城市。例如:剩3个城市,概率为:0.1,0.2,0.7,累计概率为:0.1,0.3,0.7

Matrix&Vector的运算

我是研究僧i 提交于 2019-11-27 00:51:35
Matrix&Vector的运算 原文地址: http://eigen.tuxfamily.org/dox/group__TutorialMatrixArithmetic.html 本章主要对矩阵、向量和标量之间的计算做一些简要介绍 介绍 为了实现矩阵(向量)之间的计算,Eigen同时提供了运算符重载(+、-、×、/ 等)和类方法(dot()、corss() 等)两大形式的工具。对于Matrix类,重载的运算符只支持线性代数相关算法。例如, matrix1*matrix2 意味着矩阵之间的点乘, vector+scalar 是不被允许的表达式。如果你需要数组操作而非线性代数计算,可参考 这里 。 加减运算 加减运算符左右的矩阵必须有相同的尺寸,也必须有相同的元素类型,Eigen不支持自动类型提升。一下为运算符示例: a+b、a-b、-a、a+=b、a-=b 。 矩阵与标量的乘除 矩阵乘或者除以标量的方法也很简单,例如: matrix/scalar、m*s、s*m、m/=s、m*=s 表达式注意事项 这里描述的是Eigen的高阶特性,具体内容可以参考 这里 ,这里我们稍微提一下。在EIgen中算术运算符并不做实际的计算,这些运算符只是返回一个 被标识 要做相关计算的对象,真实的计算发生在对整个表达式求值的时候,一般是遇见赋值等号的时候。这样做有利于编译器做优化。举个例子: