Python中的Numpy 矩阵运算
目录
在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提:
若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数。运算的方法如下图:
当时学线性代数时老师教的更为直观记法:
点乘则是这样:
假如有a,b两个矩阵,在Matlab中我们实现点乘和叉乘的方式分别如下:
a.*b %表示点乘 a*b %表示叉乘
下面我们来看看python中的操作:
import numpy as np a = np.arange(1, 10).reshape(3, 3) b = np.arange(1, 10).reshape(3, 3) print(a) print(a*b) # 点乘只允许1*m和m*n a1 = np.mat(np.arange(1, 10).reshape(3, 3)) a2 = np.mat(np.arange(1, 10).reshape(3, 3)) a3 = np.dot(a1, a2) # 叉乘使用dot print(a1) print(a3)
运行结果:
使用python
操作刚好与Matlab
相反,使用点乘计算实际上是各数组相同下标相乘。Numpy库中的dot函数则是为了实现数组相乘。
到此这篇关于Python中的Numpy 矩阵运算的文章就介绍到这了,更多相关Python Numpy 矩阵运算内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python常用库Numpy进行矩阵运算详解
Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度快了好几百.因为Numpy数组本身能节省内存,并且Numpy在执行算术.统计和线性代数运算时采用了优化算法. Numpy的另一个强大功能是具有可以表示向量和矩阵的多维数组数据结构.Numpy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题. 与Python列表相比
-
Python numpy大矩阵运算内存不足如何解决
程序运行,产生如下结果,然后进程终止,导致这一结果的原因很有可能是内存爆炸. 当两个较大的 (e.g., 10000*10000 维)ndarray 做运算(加法,or 乘法)时,很容易出现这样的结果. 解决办法: 大多数情况下,这种大矩阵都是稀疏的.尽可能地利用稀疏计算的方式,例如稀疏矩阵,或者只计算非 0 位置的值. 如果都是整数运算,可以设置 dtype=int,而非 dtype=float, 可以省下不少空间. linux 系统下,使用 top 命令,可以很容易地看到内存(%MEM) 的
-
Python中的Numpy 矩阵运算
目录 在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提: 若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数.运算的方法如下图: 当时学线性代数时老师教的更为直观记法: 点乘则是这样: 假如有a,b两个矩阵,在Matlab中我们实现点乘和叉乘的方式分别如下: a.*b %表示点乘 a*b %表示叉乘 下面我们来看看python中的操作: import numpy as np a = np.arange(1, 10).resha
-
Python中的Numpy 矩阵运算
目录 在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提: 若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数.运算的方法如下图: 当时学线性代数时老师教的更为直观记法: 点乘则是这样: 假如有a,b两个矩阵,在Matlab中我们实现点乘和叉乘的方式分别如下: a.*b %表示点乘 a*b %表示叉乘 下面我们来看看python中的操作: import numpy as np a = np.arange(1, 10).resha
-
在python中利用numpy求解多项式以及多项式拟合的方法
构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时多项式的值 3 >>> p.roots #多项式的根 array([3., 1.]) >>> p(p.roots) #多项式根处的值 array([0., 0.]) >>> p.order #多项式的阶数 2 >>> p.coeffs #
-
python中利用numpy.array()实现俩个数值列表的对应相加方法
小编想把用python将列表[1,1,1,1,1,1,1,1,1,1] 和 列表 [2,2,2,2,2,2,2,2,2,2]对应相加成[3,3,3,3,3,3,3,3,3,3]. 代码如下: import numpy a = numpy.array([1,1,1,1,1,1,1,1,1,1]) b = numpy.array([2,2,2,2,2,2,2,2,2,2]) c = a + b print(type(c)) print(list(c)) 输出结果为: <class 'numpy.nd
-
python中的Numpy二维数组遍历与二维数组切片后遍历效率比较
在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历. 代码如下: import numpy as np import time NUM = 160 a=np.random.random((NUM,NUM)) start = time.time() for i in range(NUM): for j in range(NUM): if a[i][j] == 1.0: pass end1
-
Python中的 Numpy 数组形状改变及索引切片
目录 1.改变数组形状 2.索引和切片 1.改变数组形状 数组的shape属性返回一个元组,包括维度以及每个轴的元素数量,Numpy 还提供了一个reshape()方法,它可以改变数组的形状,返回一个新的数组. 例如: a = np.array([1,2,3,4,5,6,7,8]) 转换成二维数组: b = a.reshape((2,4)) 转换成三维数组: c = a.reshape((2,2,2)) 但是需要注意的是,修改后的数组元素个数与原数组元素个数必须是一致的,不一致会报错. 例如执行
-
Python中的Numpy 面向数组编程常见操作
目录 数组编程 简单例子 逻辑条件作为数组操作 数学和统计方法 布尔数组的方法 排序 唯一值和其他的逻辑集合 数组编程 使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题.我们都知道向量化的数组操作比纯Python的等价实现在速度这一方面快很多,至于多少(一到两个数量级)甚至更多,生活需要慢节奏,但是计算就不可以了,掌握高效的计算模型,可以让数据分析如虎添翼! 简单例子 我们生成从-3.14--3.14,按照0.01的间
-
Python中优化NumPy包使用性能的教程
NumPy是Python中众多科学软件包的基础.它提供了一个特殊的数据类型ndarray,其在向量计算上做了优化.这个对象是科学数值计算中大多数算法的核心. 相比于原生的Python,利用NumPy数组可以获得显著的性能加速,尤其是当你的计算遵循单指令多数据流(SIMD)范式时.然而,利用NumPy也有可能有意无意地写出未优化的代码. 在这篇文章中,我们将看到一些技巧,这些技巧可以帮助你编写高效的NumPy代码.我们首先看一下如何避免不必要的数组拷贝,以节省时间和内存.因此,我们将需要深入Num
-
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
用Python来编写机器学习方面的代码是相当简单的,因为Python下有很多关于机器学习的库.其中下面三个库numpy,scipy,matplotlib,scikit-learn是常用组合,分别是科学计算包,科学工具集,画图工具包,机器学习工具集. numpy :主要用来做一些科学运算,主要是矩阵的运算.NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组.它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循
-
实例详解Python中的numpy.abs和abs函数
目录 说在最前 先看示例程序-abs()函数 再看示例程序-numpy.abs()函数 观察两个程序的结果 分析解释 拓展 补充:numpy abs()报错 总结 说在最前 不知道小伙伴们在写代码的时候有没有区分开numpy.abs和abs函数,别小看这两个函数,如果在写程序的时候正确区分使用这两个函数可以使自己的程序运行效率大大提升. 别看这两个函数都能对整数求绝对值,但他们俩的返回值类型完全不一样,如果傻傻地混为一谈,将会使你的程序运行时间被大大拖累! 今天笔者就带小伙伴们看看,这两个函数究
随机推荐
- 使用js写的一个简易的投票
- asp中通过addnew添加内容后取得当前文章的自递增ID的方法
- CuteEditor 编辑器的字体样式无法控制的解决方法
- perl脚本实现限制ssh最大登录次数(支持白名单)
- 在Python中操作字典之fromkeys()方法的使用
- 打印机一般原理故障面面观
- Python的批量远程管理和部署工具Fabric用法实例
- C#基本概念列举详解
- Android App仿微信界面切换时Tab图标变色效果的制作方法
- MySQL的线程池原理学习教程
- nodejs npm package.json中文文档
- Python 模拟登陆的两种实现方法
- ajax实时任务提示功能的实现代码第1/2页
- 使用jQuery的easydrag插件实现可拖动的DIV弹出框
- jquery通过扩展select控件实现支持enter或focus选择的方法
- Jquery validation remote 验证的缓存问题解决方法
- 提防网游“盗号”病毒
- Java数据溢出代码详解
- PHP静态类
- php导出csv数据在浏览器中输出提供下载或保存到文件的示例