numpy 矩阵相关函数
我们 知道,矩阵在python里面用的不少,所以记载下关于矩阵的操作
numpy.zeros():可以用来构造全零矩阵
- >>> zeros(3)
- array([ 0., 0., 0.])
- >>> zeros((3,3))
- array([[ 0., 0., 0.],
- [ 0., 0., 0.],
- [ 0., 0., 0.]])
numpy.ones(): 可以用来构造全一矩阵
- >>> ones((3,3))
- array([[ 1., 1., 1.],
- [ 1., 1., 1.],
- [ 1., 1., 1.]])
numpy.eyes(): 可以用来构造单位矩阵
plain copy
- >>> eye(3)
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
shape 用法 配合使用
shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。
举例说明:
建立一个3×3的单位矩阵e, e.shape为(3,3),表示3行3列,第一维的长度为3,第二维的长度也为3
- >>> e = eye(3)
- >>> e
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
- >>> e.shape
- (3, 3)
- >>> e = eye(3)
- >>> e
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
- >>> e.shape
- (3, 3)
建立一个一维矩阵b, b.shape 为矩阵的长度
- >>> b =array([1,2,3,4])
- >>> b.shape
- (4,)
- #可以简写
- >>> shape([1,2,3,4])
- (4,)
- >>>
- >>> b =array([1,2,3,4])
- >>> b.shape
- (4,)
- #可以简写
- >>> shape([1,2,3,4])
- (4,)
- >>>
建立一个4×2的矩阵c, c.shape[0] 为第一维的长度,c.shape[1] 为第二维的长度。
- >>> c = array([[1,1],[1,2],[1,3],[1,4]])
- >>> c.shape
- (4, 2)
- >>> c.shape[0]
- 4
- >>> c.shape[1]
- 2
- >>> c = array([[1,1],[1,2],[1,3],[1,4]])
- >>> c.shape
- (4, 2)
- >>> c.shape[0]
- 4
- >>> c.shape[1]
- 2
一个单独的数值,返回值为空
- >>> shape(3)
- ()
- >>> shape(3)
- ()
矩阵的乘法:
Python 中的几种矩阵乘法 np.dot, np.multiply, *
使用array时,运算符 * 用于计算数量积(点乘),函数 dot() 用于计算矢量积(叉乘).
使用matrix时,运算符 * 用于计算矢量积,函数 multiply() 用于计算数量积.
下面是使用array时:
1. 同线性代数中矩阵乘法的定义: np.dot()
np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。
2. 对应元素相乘 element-wise product: np.multiply(), 或 *
在Python中,实现对应元素相乘,有2种方式,一个是np.multiply(),另外一个是*。这两种的效果是一样的。
请看代码:

1 #!/usr/bin/env python3
2 # -*- coding: utf-8
3
4 import numpy as np
5
6 X = np.array([[1,2],[3,4]])
7 Y = np.array([[5,6],[7,8]])
8
9 a1 = np.dot(X,Y)
10 print('np.dot(X,Y)=\n',a1)
11
12 a2 = np.multiply(X,Y)
13 print('np.multiply(X,Y)=\n',a2)

运行结果:
|
1
2
3
4
5
6
7
8
9
|
np.dot(X,Y)= [[19 22] [43 50]]np.multiply(X,Y)= [[ 5 12] [21 32]]X*Y= [[ 5 12] [21 32]] |
转载自:http://blog.csdn.net/xingchengmeng/article/details/64442935
http://blog.csdn.net/u010758410/article/details/71554224
http://www.cnblogs.com/baibaibaiyou/p/7892437.html
numpy 矩阵相关函数的更多相关文章
- 给numpy矩阵添加一列
问题的定义: 首先我们有一个数据是一个mn的numpy矩阵现在我们希望能够进行给他加上一列变成一个m(n+1)的矩阵 import numpy as np a = np.array([[1,2,3], ...
- NumPy 矩阵库(Matrix)
NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...
- python之numpy矩阵库的使用(续)
本文是对我原先写的python常用序列list.tuples及矩阵库numpy的使用中的numpy矩阵库的使用的补充.结合我个人现在对线性代数的复习进度来不断更博. Section 1:行列式的计算 ...
- NumPy矩阵库
NumPy - 矩阵库 NumPy 包包含一个 Matrix库numpy.matlib.此模块的函数返回矩阵而不是返回ndarray对象. matlib.empty() matlib.empty()函 ...
- 18、NumPy——矩阵库(Matrix)
NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...
- NumPy 矩阵库函数
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- numpy矩阵相加时需注意的一个点
今天在进行numpy矩阵相加的时候出现了一个小的奇怪的地方,下面我们来看看: >>>P = np.array([1,2,3,4]) >>>F = np.array( ...
- numpy 矩阵在作为函数参数传递时的奇怪点
numpy 矩阵在作为函数参数传递时的奇怪点 import numpy as np class simpleNet: def __init__(self): self.W = np.array([1, ...
- Python合并两个numpy矩阵
numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...
随机推荐
- 编写Tesseract的Python扩展
Tesseract是一个开源的OCR(光学字符识别)引擎,用于识别并输出图片中的文字.虽然和商业软件比起来识别精度不算很高,但是如果你要寻找免费开源的OCR引擎,可能Tesseract就是唯一的选择了 ...
- Eclipse 启动tomcat 访问主页报错404
问题 tomcat用startup.sh启动,访问localhost:8080能正常访问,用Eclipse service启动tomcat,访问localhost:8080报错404 解决方法 1. ...
- 关于Block汇总
//使用总结: //1.当block里面会有b类相关的参数要回调回去的时候,属性用copy修饰,将其拷贝到堆里面,这样即便栈释放掉了,b类的指针也在堆中存在,能够成功的回调回去. //Block默认存 ...
- 企业微信小程序--从零开始(带你见证从头开始的企业小程序之开发运营)
1.注册微信小程序账户(自己摸索吧很简单的) 2.微信小程序认证 3.遇到的问题 1)
- Effective C++ 条款01:视C++为一个语言联邦
四个次语言 C Object-Oriented C++ Template C++ STL
- js异步获取数据的问题
最近做js开发的时候发现了很多哥们不能区分同步和异步的区别,典型的在ajax部分,在该ajax为异步操作的时候,获取不到success之后的data的值,于是产生了各种奇葩的写法.比如创建一个局部变量 ...
- Hive-行转列(explode)
场景:通过parseHtml UDF解析一串HTML,返回一以 @@ 分割的字符串,使用split分割字符串进数组中,然后将数组的元素转列. 开始的写法 SELECT id, legal_person ...
- LinuxKit
LinuxKit是Docker最新发布的一个用于为容器构建安全.便携.可移植操作系统的工具包.它根据用户编写的yaml(指定kernel和基于docker image的一些列服务)自动构建一个常见虚拟 ...
- ElasticSearch数据副本模型
介绍 ES里面的每一个索引(Index)由多个shard组成,每一个shard有多个副本.这些副本被称为同步组.当增加或者删除文档时,这些副本之间必须保持同步,以便让所有副本都能包含相同的文档.如果同 ...
- js进阶---12-12、jquery事件委托怎么使用
js进阶---12-12.jquery事件委托怎么使用 一.总结 一句话总结:通过on方法(事件委托),给要绑定事件的元素的祖先绑定事件,从而达到效果. 1.事件委托是什么? 通过事件冒泡,让子元素绑 ...