我们 知道,矩阵在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. Linux x86架构下ACPI PNP Hardware ID的识别机制

    转:https://blog.csdn.net/morixinguan/article/details/79343578 关于Hardware ID的用途,在前面已经大致的解释了它的用途,以及它和AC ...

  2. MySQL-5.7 Insert语句详解

    1.语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION (partition_ ...

  3. cordova 5.0版本说明

    2015/04/21发布Cordova 5.0.0! 1)插件从Cordova plugins registry(CPR)全部移到npm,并且重新命名 ***org.apache.cordova.* ...

  4. viewport大白话

    以下所有内容均是我自己理解的,可能有误,懂得大佬希望指点一下我.. 首先,写一个简单的页面.里面只有1个200*200的div <html lang="en"> < ...

  5. codeforces 703B

    题意:有n座城市,其中k座是省会城市,每个城市有对应的点权,城市1-2-3-...-n-1有一条路相连,省会城市与其他所有的城市相连,且每两个城市间最多有一条路,每条路的边权为路连接的两座城市的点权乘 ...

  6. iOS日常学习 - 让你的 Xcode8 继续使用插件

    本文转载,原文链接 随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉及到 Xcode8 有哪些更新,而是记录了如何让 Xcode8 继续支持 Plugin. 相信各 ...

  7. OwinStartup not firing

    https://stackoverflow.com/questions/20203982/owinstartup-not-firing 缺少依赖 Make sure you have installe ...

  8. 关于Block汇总

    //使用总结: //1.当block里面会有b类相关的参数要回调回去的时候,属性用copy修饰,将其拷贝到堆里面,这样即便栈释放掉了,b类的指针也在堆中存在,能够成功的回调回去. //Block默认存 ...

  9. Java基础(1)--JDK,变量

    Scanner的next()方法和nextLine()方法 1.next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动 ...

  10. eclipse显示结果窗口字体大小

    设置前的字体大小 设置后的字体大小 步骤