我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python的矩阵扩充

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python的矩阵扩充


a为3*4的矩阵,b为2*4的矩阵,现要形成[ab]一样的矩阵,就需要扩充a
法一:

    import numpy as np
    a=np.row_stack( (a , b) )

法二:

    c=np.zeros( (5 , 4) )
    for i in range(5):
        if i<3:
            c[i]=a[i]
        else :
            c[i]=b[i-3]

如果只是扩充这么一次,肯定选择法1
但是如果是要扩充多次,即a,b扩充之后还要进行多次的扩充,那么法2是个优势选择。
这里举个例子:
training_set是个(imgMatrix,label)的二维元组,imgMatrix是个60000*784的矩阵,label是个784*1的矩阵。imgMatrix的一行为一个img,同一种类的img的label是相同的,imgMatrix中共十个种类。下面程序的目的是从imgMatrix中找出同一种类的img,并分别构成各个种类的矩阵

注释部分采用的法1,循环6000次就需要5.02s,60000次时间更长,不是简单的5.02s*10,我没有继续等待,也不知道具体时间是多少,但等了几分钟都没有结束。
而采用法2(未注释部分),只需要1.02s!!!,是真的快!

     training_set,test_set=mnist_loader()
     print 'data load over'
        #start1=time.clock()
        #nullMatrix=np.mat( training_set[0].shape[1]*[[]] ).T
        #omega=10*[nullMatrix]
        #for k in range(60000):
        #    label=training_set[1][k,0]
        #    omega[label]=np.row_stack( (omega[label] , training_set[0][k]) )
        #end1=time.clock()
        #print end1-start1  

    start2=time.clock()
    count=10*[0]
    for k in range(60000):
        label=training_set[1][k,0]
        count[label]+=1
    omega=10*[0]
    for i in range(10):
        omega[i]=np.zeros( (count[i],784) )
    index=10*[0]
    for k in range(60000):
        label=training_set[1][k,0]
        omega[label][index[label]]=training_set[0][k]
        index[label]=index[label]+1
    end2=time.clock()
    print end2-start2

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python的矩阵扩充

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python的矩阵扩充

a为3*4的矩阵,b为2*4的矩阵,现要形成[ab]一样的矩阵,就需要扩充a 法一: import numpy as np a=np.row_stack( (a , b) )法二: c=np.zeros( (5 , 4)
2023-01-31

使用Matlab怎么实现矩阵复制扩充

使用Matlab怎么实现矩阵复制扩充?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。考虑这个问题:定义一个简单的行向量a如何复制10行呢?即:同理,对于一个列向量,如何复制
2023-06-15

Numpy扩充矩阵维度和删除维度的实现示例

这篇文章主要介绍了Numpy扩充矩阵维度和删除维度的实现示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在操作矩阵的时候,不同的接口对于矩阵的输入维度要求不同,输入可能为1
2023-06-14

python创造矩阵

python的numpy创造矩阵from numpy import matimport numpy as npdata1=mat(zeros((3,3)));               #创建一个3*3的零矩阵,矩阵这里zeros函数的参
2023-01-31

Python——生成矩阵

def makeMatrix(row_num, column_num, start=0.1, step=0): matrix = [] row = [] for i in range(row_num): fo
2023-01-31

python 打印矩阵

matrix = [[0,0,0,1,0], [0,0,0,0,0], [0,2,0,0,0], [0,0,0,0,0], [0,0,0,3,0] ]for i in matrix:print (i)input()
2023-01-31

Python 生成矩阵

限定步长,起始数字,然后生成x行,y列的矩阵>>> def range2rect(x,y,start=0,step=1):... N=[]... F=[]... for i in range(x):                  #等价
2023-01-31

python中的矩阵运算

转自:https://www.cnblogs.com/chamie/p/4870078.html摘自:http://m.blog.csdn.net/blog/taxueguilai1992/46581861python的numpy库提供矩阵
2023-01-31

Python numpy生成矩阵、串联矩阵代码分享

import numpy生成numpy矩阵的几个相关函数:numpy.array() numpy.zeros() numpy.ones() numpy.eye() 串联生成numpy矩阵的几个相关函数:numpy.array() numpy
2022-06-04

python的常见矩阵运算

python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。1.numpy的导入和使用from numpy import *;#导入numpy的库函数import numpy as np; #这个方式
2023-01-31

Python实现生成对角矩阵和对角块矩阵

这篇文章主要为大家详细介绍了如何利用Python实现生成对角矩阵和对角块矩阵,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
2023-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录