我们 知道,矩阵在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. javascript 的dateObj.getTime() 在为C#的获取方式

    public string GetTime(DateTime dt) { Int64 retval = 0; DateTime st = new DateTime(1970, 1, 1); TimeS ...

  2. 【c++习题】【17/4/13】stack

    1.stack 模板.动态内存分配.析构 #include "stack2.cpp" #include <iostream> using namespace std; ...

  3. PHP memcache扩展模块安装

    安装php扩展模块memcache memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力. ...

  4. 如何选择合适的MySQL数据类型

    一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...

  5. 20145219 《Java程序设计》第02周学习总结

    20145219 <Java程序设计>第02周学习总结 教材学习内容总结 类型:基本类型.类类型(参考类型) 基本类型: 整数:short占2字节,int占4字节,long占8字节 字节: ...

  6. Luogu-3527 [POI2011]MET-Meteors

    Luogu-3527 [POI2011]MET-Meteors 题面 Luogu-3527 题解 感觉和上一那道题是一个类型的,直接二分答案,用BIT维护区间加(差分)即可 代码 #include&l ...

  7. eclipse中的错误解决——The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    看看我们遇到的问题 解决问题

  8. nodejs 设计模式

    1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直接返回,若不存在,则创建实例对象,并将实例对象保存在静态变量中,当下次请求时,则可以直接返回这 ...

  9. BZOJ 3196 Tyvj 1730 二逼平衡树:线段树套splay

    传送门 题意 给你一个长度为 $ n $ 有序数列 $ a $ ,进行 $ m $ 次操作,操作有如下几种: 查询 $ k $ 在区间 $ [l,r] $ 内的排名 查询区间 $ [l,r] $ 内排 ...

  10. python学习笔记(excel中处理日期格式)

    涉及到处理excel文件中日期格式数据 这里自己整理下 两种方法 代码如下: @classmethod def get_time(cls, table, nrows): testtime = [] f ...