我们 知道,矩阵在python里面用的不少,所以记载下关于矩阵的操作

numpy.zeros():可以用来构造全零矩阵

  1. >>> zeros(3)
  2. array([ 0.,  0.,  0.])
  3. >>> zeros((3,3))
  4. array([[ 0.,  0.,  0.],
  5. [ 0.,  0.,  0.],
  6. [ 0.,  0.,  0.]])

numpy.ones(): 可以用来构造全一矩阵

  1. >>> ones((3,3))
  2. array([[ 1.,  1.,  1.],
  3. [ 1.,  1.,  1.],
  4. [ 1.,  1.,  1.]])

numpy.eyes(): 可以用来构造单位矩阵

[plain] view
plain
 copy

  1. >>> eye(3)
  2. array([[ 1.,  0.,  0.],
  3. [ 0.,  1.,  0.],
  4. [ 0.,  0.,  1.]])

shape 用法 配合使用

shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。

举例说明:

建立一个3×3的单位矩阵e, e.shape为(3,3),表示3行3列,第一维的长度为3,第二维的长度也为3

  1. >>> e = eye(3)
  2. >>> e
  3. array([[ 1.,  0.,  0.],
  4. [ 0.,  1.,  0.],
  5. [ 0.,  0.,  1.]])
  6. >>> e.shape
  7. (3, 3)
  1. >>> e = eye(3)
  2. >>> e
  3. array([[ 1.,  0.,  0.],
  4. [ 0.,  1.,  0.],
  5. [ 0.,  0.,  1.]])
  6. >>> e.shape
  7. (3, 3)

建立一个一维矩阵b, b.shape 为矩阵的长度

  1. >>> b =array([1,2,3,4])
  2. >>> b.shape
  3. (4,)
  4. #可以简写
  5. >>> shape([1,2,3,4])
  6. (4,)
  7. >>>
  1. >>> b =array([1,2,3,4])
  2. >>> b.shape
  3. (4,)
  4. #可以简写
  5. >>> shape([1,2,3,4])
  6. (4,)
  7. >>>

建立一个4×2的矩阵c, c.shape[0] 为第一维的长度,c.shape[1] 为第二维的长度。

  1. >>> c = array([[1,1],[1,2],[1,3],[1,4]])
  2. >>> c.shape
  3. (4, 2)
  4. >>> c.shape[0]
  5. 4
  6. >>> c.shape[1]
  7. 2
  1. >>> c = array([[1,1],[1,2],[1,3],[1,4]])
  2. >>> c.shape
  3. (4, 2)
  4. >>> c.shape[0]
  5. 4
  6. >>> c.shape[1]
  7. 2

一个单独的数值,返回值为空

  1. >>> shape(3)
  2. ()
  1. >>> shape(3)
  2. ()

矩阵的乘法:

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 矩阵相关函数的更多相关文章

  1. 给numpy矩阵添加一列

    问题的定义: 首先我们有一个数据是一个mn的numpy矩阵现在我们希望能够进行给他加上一列变成一个m(n+1)的矩阵 import numpy as np a = np.array([[1,2,3], ...

  2. NumPy 矩阵库(Matrix)

    NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...

  3. python之numpy矩阵库的使用(续)

    本文是对我原先写的python常用序列list.tuples及矩阵库numpy的使用中的numpy矩阵库的使用的补充.结合我个人现在对线性代数的复习进度来不断更博. Section 1:行列式的计算 ...

  4. NumPy矩阵库

    NumPy - 矩阵库 NumPy 包包含一个 Matrix库numpy.matlib.此模块的函数返回矩阵而不是返回ndarray对象. matlib.empty() matlib.empty()函 ...

  5. 18、NumPy——矩阵库(Matrix)

    NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...

  6. NumPy 矩阵库函数

    章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...

  7. numpy矩阵相加时需注意的一个点

    今天在进行numpy矩阵相加的时候出现了一个小的奇怪的地方,下面我们来看看: >>>P = np.array([1,2,3,4]) >>>F = np.array( ...

  8. numpy 矩阵在作为函数参数传递时的奇怪点

    numpy 矩阵在作为函数参数传递时的奇怪点 import numpy as np class simpleNet: def __init__(self): self.W = np.array([1, ...

  9. Python合并两个numpy矩阵

    numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...

随机推荐

  1. 较常用的Math方法及ES6中的扩展

    记录下与Math有关的常用方法,如:求最大值.最小值等,或者是保留几位数啥的 1.数据 let floatA = 2.325232; let floatB = 2.3456; let temporar ...

  2. 函数:生成n个互不相同的随机数,最大值为upper

    参考:http://blog.csdn.net/zhangkaihang/article/details/6836506 函数getRandArray()功能说明: 入参:int upper-生成的随 ...

  3. D3学习之地图

    D3学习之地图 (2017.03.09-03.11) 地图的意义 在可视化领域中,将数据点投影和关联到地理区域上,是一个非常关键的内容(体现了可视化中利用读者自身知识常识从而加速吸收信息的原则). G ...

  4. 并查集 试水 hdu1232

    #include <stdio.h> #include <stdlib.h> int n,m; ],rank[]; int count; int find(int x) { i ...

  5. JS Object To C# ASP.Net ModelBind

    之前做项目的时候发现,Jquery自带的Form 序列化函数.与asp.net 里边的Modelbinding格式不匹配,所以写了一个可以把前端的Object对象序列化成ModelBinding认识的 ...

  6. spring:设置映射访问路径 或 xml配置访问路径 (spring mvc form表单)

    项目hello, 在src/main/java下面建一个目录: charpter2 一.xml配置访问路径 web.xml <web-app> <display-name>Ar ...

  7. Codeforces Round #220 (Div. 2)

    链接 毒瘤场..... A题:,真码农题,直接干爆,枚举,注意越界问题,wa37的看这组数据1 10 1 5 2 2,应该是no //#pragma comment(linker, "/st ...

  8. mysql的bin或者sbin目录可执行文件

    一. mysql服务和myql服务启动程序 1. mysqld mysqld就是mysql server,负责管理对mysql数据的访问. 当mysql server启动后,它会监听来自客户端的网络连 ...

  9. [转载]SVN trunk、branch、tag的用法

    Subversion有一个很标准的目录结构,是这样的. 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-t ...

  10. 集合类Collection Map

    数组与集合的区别:数组虽然也可以存储对象,但长度是固定的:集合的长度是可变的,数组中可以存储基本数据类型,集合只能存储对象. 集合特点:1.用于存储对象:  2.长度可变: 3.可存储不同对象: 一. ...