python实现矢量积、叉积、外积、张量积
张量积 一般指的是Kronecker product a⊗b
很显然,该运算不遵守交换律。
import numpy as np
a = np.eye(3)
b = np.ones((3,2,3))
c = np.kron(a,b)
a
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
b
array([[[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.]]])
c
array([[[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.]],
[[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.]],
[[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 0., 0., 1., 1., 1.]]])
叉积 cross product,一般是两个向量之间的计算,得到一个垂直这两个向量的向量。向量必须是3维,2维向量则广播成3维(注意这里向量维不是空间维)。如果是矩阵,则是矩阵的行向量或列向量之间的运算。
import numpy as np
a = np.array([1,2,0])
b = np.array([1,0,0])
c = np.cross(a,b)
外积是Kronecker product的一种特殊形式,是两个一维向量之间的运算。
import numpy as np
a = np.array([1,2,3,4])
b = np.ones([3,1])c = np.outer(a,b)
d = np.kron(a,b)
c
array([[ 1., 1., 1.],
[ 2., 2., 2.],
[ 3., 3., 3.],
[ 4., 4., 4.]])
d
array([[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.]])
如果b改成1×3,那么该例d为1×12:
array([[ 1., 1., 1., 2., 2., 2., 3., 3., 3., 4., 4., 4.]])
内积没什么好说的,大家最熟悉了。
最后提一下,python(numpy)的矩阵元素相乘(elementwise)只有numpy.multiply()和*。其他np.dot(),np.matmul()均是矩阵乘。
Hadamard product (also known as the Schur product)
The Hadamard product is also often denoted using the
symbol instead of
.
python实现矢量积、叉积、外积、张量积相关推荐
- Python/Numpy之点积叉积内积外积张量积
Python/Numpy之点积叉积内积外积张量积 内积(内积.标量积.数量积.点积.点乘)a与b的内积为 a·b = |a||b|cos∠(a, b),结果为标量(一个数) 外积(叉乘):向量a与b的 ...
- 矢量的叉积和点积计算
标量(Scalar,标量是只有模没有方向的量,即距离). 矢量(Vector,也称为向量,矢量是有模和方向但没有位置的量,即方向加速度). 点(点是没有大小之分的位置). 1.标量k和矢量v的乘除: ...
- 关于标量积和矢量积的理解
矢量积与标量积的对比 标量积(A⃗⋅B⃗\vec {A} \cdot \vec{B}A⋅B) 矢量积(A⃗×B⃗\vec{A} \times \vec{B}A×B) 运算方式 A⃗⋅B⃗=A⋅B⋅co ...
- python 矢量数据融合代码_在ArcGIS下基于Python的矢量数据处理方法
在 ArcGIS 下基于 Python 的矢量数据处理方法 林璐 王爽 李海泉 侯兴泽 马鹏刚 [摘 要] 在 ArcGIS 中地理处理可以通过 Python 脚本语言来具体实现.通过 Python ...
- python 画风矢量图
python 画风矢量图参考 Quiver plot arrow aspect ratio https://stackoverflow.com/questions/12079842/quiver-pl ...
- python图像识别生成矢量图_使用python制作矢量图
Get一个使用python制作矢量图的新技能: 前言: Matplotlib远比我们想象的强大,而这只是众多python强大的包中的一个,不愧是群英荟萃. 绘图后端我们一般是看不见的,matplotl ...
- 通过python画矢量图(matplotlib,有代码)
python画矢量图(有代码) python的matplotlib可以保存的文件格式 word可以插入哪些图片格式呢 代码 中文乱码问题 有些同学因为文章的要求,图片插入到word里的时候需要足够清晰 ...
- 矢量积法求解雅可比矩阵
雅可比矩阵 J(q)J(q)J(q) 可以看成是关节空间的速度矢量 q˙\dot{q}q˙ 向笛卡尔空间的速度矢量 x˙\dot{x}x˙ 的线性映射.雅可比矩阵 J(q)J(q)J(q) 依赖于机 ...
- 机器人学回炉重造(2-2):雅可比矩阵的求法——矢量积法、微分变换法、Manipulator Jacobian(Jacobian for short)
文章目录 写在前面 矢量积法--改进D-H法 微分变换法--改进D-H法 Manipulator for Jacobian(Jacobian for short)--标准D-H法 微分变换法--标准D ...
最新文章
- AC日记——[Hnoi2017]影魔 bzoj 4826
- 【 MATLAB 】适合初学者的 chirp 理解与推导
- 将时间戳转为年月日时分秒格式
- C语言高级编程:利用堆栈溢出修改函数返回地址
- WPF 实现人脸检测
- pandas追加写入excel_[Excel]如果你爱Excel,请学好pandas
- 黑客编程学习_1.黑客编程入门
- 基于javaweb+jsp的员工绩效考核管理系统(带报告文档)
- transcad安装教程_TransCAD免安装版
- URL编码与中文相互转换
- web服务器 怎样上传文件,文件上传web服务器
- 随机生成15个小写字母c语言,c语言,编程随机生成40个小写字母并赋值给一个字符数组...
- Mixamo动画导入Unity中常见问题
- 王绍伟:你不是非得和别人一样---转载
- Multisim仿真—恒流源电路(一)
- origin做主成分分析图_Graphpad Prism也可以做主成分分析(PCA)?
- 上汽集团 java_【上汽集团工资】工程师待遇-看准网
- 如何规划与实施数字化工厂?
- 软件定义的网络--改头换面的改造?
- 常规工具类:GeneralUtils.java
热门文章
- App用户自然流量裂变增长:移动互联网社交+深度链接技术的应用
- JAVA编程练习题(50题及答案11-20)
- PMP培训机构是否有官方授权机构报名?
- 删除列级完整性约束_MySQL中的数据完整性约束
- 身份证识别、银行卡识别、名片识别,让金融APP更智能
- C++中 左值 与 右值 的区别
- Mina Codec Filter对应协议实现编解码处理
- 超300家企业,4亿连接设备,揭秘小米 IoT 生态链!
- psim电力电子仿真alpha controller(阿尔法控制器)的设置和使用
- NX二次开发-UFUN替换组件UF_ASSEM_substitute_component