zoukankan      html  css  js  c++  java
  • numpy 矩阵相关函数

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


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

    [plain] view plain copy
    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(): 可以用来构造全一矩阵

    [plain] view plain copy
    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

    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    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)  
    [plain] view plain copy
    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 为矩阵的长度
    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    1. >>> b =array([1,2,3,4])  
    2. >>> b.shape  
    3. (4,)  
    4. #可以简写  
    5. >>> shape([1,2,3,4])  
    6. (4,)  
    7. >>>   
    [plain] view plain copy
    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] 为第二维的长度。

    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    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  
    [plain] view plain copy
    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  
    一个单独的数值,返回值为空

    [plain] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    1. >>> shape(3)  
    2. ()  
    [plain] view plain copy
    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)=
    ',a1)
    11 
    12 a2 = np.multiply(X,Y)
    13 print('np.multiply(X,Y)=
    ',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





  • 相关阅读:
    (算法)Hanoi Problem汉诺塔问题
    (剑指Offer)面试题48:不能被继承的类
    (剑指Offer)面试题47:不用加减乘除做加法
    (剑指Offer)面试题46:求1+2+3+....+n
    (剑指Offer)面试题45:圆圈中最后剩下的数字
    程序员应该知道的15件事 在生活与工作中用他们来警惕自己
    基于REST架构的Web Service设计
    互联网上五个最高级的搜索引擎
    哈佛经济学家关于工作效率的意外发现
    列举一些常见的系统系能瓶颈 Common Bottlenecks
  • 原文地址:https://www.cnblogs.com/blogwangwang/p/9608149.html
Copyright © 2011-2022 走看看