Python中矩阵库Numpy基本操作

NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。

下面对numpy中的操作进行总结。 
numpy包含两种基本的数据类型:数组和矩阵。

数组(Arrays)

>>> from numpy import *
>>> a1=array([1,1,1])    #定义一个数组
>>> a2=array([2,2,2])
>>> a1+a2                #对于元素相加
array([3, 3, 3])
>>> a1*2                 #乘一个数
array([2, 2, 2])##
>>> a1=array([1,2,3])
>>> a1
array([1, 2, 3])
>>> a1**3              #表示对数组中的每个数做平方
array([ 1,  8, 27])
##取值,注意的是它是以0为开始坐标,不matlab不同
>>> a1[1]
2##定义多维数组
>>> a3=array([[1,2,3],[4,5,6]])
>>> a3
array([[1, 2, 3],[4, 5, 6]])
>>> a3[0]             #取出第一行的数据
array([1, 2, 3])
>>> a3[0,0]           #第一行第一个数据
1
>>> a3[0][0]          #也可用这种方式
1
##数组点乘,相当于matlab点乘操作
>>> a1=array([1,2,3])
>>> a2=array([4,5,6])
>>> a1*a2
array([ 4, 10, 18])

Numpy有许多的创建数组的函数:

import numpy as npa = np.zeros((2,2))  # Create an array of all zeros
print a              # Prints "[[ 0.  0.]#          [ 0.  0.]]"b = np.ones((1,2))   # Create an array of all ones
print b              # Prints "[[ 1.  1.]]"c = np.full((2,2), 7) # Create a constant array
print c               # Prints "[[ 7.  7.]#          [ 7.  7.]]"d = np.eye(2)        # Create a 2x2 identity matrix
print d              # Prints "[[ 1.  0.]#          [ 0.  1.]]"e = np.random.random((2,2)) # Create an array filled with random values
print e                     # Might print "[[ 0.91940167  0.08143941]#               [ 0.68744134  0.87236687]]"

数组索引(Array indexing)

矩阵

矩阵的操作与Matlab语言有很多的相关性。

#创建矩阵
>>> m=mat([1,2,3])
>>> m
matrix([[1, 2, 3]])#取值
>>> m[0]                #取一行
matrix([[1, 2, 3]])
>>> m[0,1]              #第一行,第2个数据
2
>>> m[0][1]             #注意不能像数组那样取值了
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1#将Python的列表转换成NumPy的矩阵
>>> list=[1,2,3]
>>> mat(list)
matrix([[1, 2, 3]])#矩阵相乘
>>> m1=mat([1,2,3])     #1行3列
>>> m2=mat([4,5,6]) 
>>> m1*m2.T             #注意左列与右行相等 m2.T为转置操作
matrix([[32]])       
>>> multiply(m1,m2)     #执行点乘操作,要使用函数,特别注意
matrix([[ 4, 10, 18]])   #排序
>>> m=mat([[2,5,1],[4,6,2]])    #创建2行3列矩阵
>>> m
matrix([[2, 5, 1],[4, 6, 2]])
>>> m.sort()                    #对每一行进行排序
>>> m
matrix([[1, 2, 5],[2, 4, 6]])>>> m.shape                     #获得矩阵的行列数
(2, 3)
>>> m.shape[0]                  #获得矩阵的行数
2
>>> m.shape[1]                  #获得矩阵的列数
3#索引取值
>>> m[1,:]                      #取得第一行的所有元素
matrix([[2, 4, 6]])
>>> m[1,0:1]                    #第一行第0个元素,注意左闭右开
matrix([[2]])
>>> m[1,0:3]
matrix([[2, 4, 6]])
>>> m[1,0:2]
matrix([[2, 4]])

扩展矩阵函数tile()

例如,要计算[0,0,0]到一个多维矩阵中每个点的距离,则要将[0,0,0]进行扩展。

tile(inX, (i,j)) ;i是扩展个数,j是扩展长度

实例如下:

>>>x=mat([0,0,0])
>>> x
matrix([[0, 0, 0]])
>>> tile(x,(3,1))           #即将x扩展3个,j=1,表示其列数不变
matrix([[0, 0, 0],[0, 0, 0],[0, 0, 0]])
>>> tile(x,(2,2))           #x扩展2次,j=2,横向扩展
matrix([[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]])

//

转载:https://blog.csdn.net/taoyanqi8932/article/details/52703686

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

作业6--团队项目之需求

队员&#xff1a;欧泽波 201306114428 杨洁华 201306114429 赵泽嘉 201306114430 林扬滨 201306114424 学生&#xff08;杨洁华&#xff09;&#xff1a;软件的界面太单调了&#xff0c;不好看&#xff0c;要是有卡通人物就好了&#xff0c;有些题老师也没教&#xff0c;不知道…

专设AI周会 高管悉数到场 微软CEO有多重视人工智能?

来源&#xff1a;CNBC 翻译 | 网易智能 (天门山)据CNBC报道&#xff0c;一般在每周的周四&#xff0c;微软首席执行官萨蒂亚纳德拉(Satya Nadella)和微软高管团队都要在一起开会&#xff0c;讨论该公司越来越多的人工智能&#xff08;AI&#xff09;项目。微软首席技术官凯文斯…

vb的VSFlexGrid控件

多行选中 VSFlexGrid的SelectionMode flexSelectionListBox&#xff0c;现在可以配合Ctrl进行多行选择 循环取值 用vsflexgrid.SelectedRows 可以得到你选择的行的总数量然后用循环可以得到具体的行中具体列的内容Dim Temp As StringDim i As IntegerFor i 0 To VSFlexGrid.…

汽车电子:下一个苹果产业链

来源&#xff1a;安信证券摘要&#xff1a;本文将从“7个层级深度解析”这次产业发展红利带来巨大且丰富的投资机遇。汽车电子产业&#xff0c;预计将是继家电、PC和手机之后又一次全产业链级别的大发展机遇&#xff0c;不同的是&#xff1a;1. 其构成产品附加值更高(高稳定/高…

模块化开发之sea.js实现原理总结

seajs官网说&#xff1a;seajs是一个模块加载器&#xff0c;所以学习它并不难。 在我的理解就是&#xff1a;本来我们是需要手动创建 script标签 引入 js文件的&#xff0c;但用seajs后&#xff0c;它就自动帮我们完成这些工作。 这里只说实现原理&#xff0c;具体使用请看seaj…

mysql获取各种日期

select curdate(); --获取当前日期 select last_day(curdate()); --获取当月最后一天。 select DATE_ADD(curdate(),interval -day(curdate())1 day); --获取本月第一天 select date_add(curdate()-day(curdate())1,interval 1 month); -- 获取下个月的第一天 select DATEDIFF(…

【干货】百度联合清华大学发布国内首个基于AI实践的《产业智能化白皮书》(附报告全文)...

来源&#xff1a;百度AI在4月9日举行的“百度大学 Alpha 学院首期学员毕业典礼”上&#xff0c;百度联合清华大学发布国内首个基于 AI 实践的行业重磅报告&#xff0c;《产业智能化白皮书——人工智能产业化发展地形初现端倪》。这是国内首次从产业演进的视角探讨 AI 与产业融合…

endl与'\n'的区别

endl\n刷新缓冲区&#xff0c;但是以下两段代码&#xff1a; #include<iostream> #include<iomanip> #include<cstdlib> …

全球语种谱系图,看看机器翻译需要跨越的大山

来源&#xff1a;语言春秋编辑 | 北外新闻中心 杨丹蕊摘要&#xff1a;当前机器翻译技术可以分成两类&#xff0c;一种是 Rich Resource NMT&#xff0c;也就是双语语料丰富的语言对&#xff08;比如中文 - 英文&#xff09;&#xff1b;另一种叫 Low Resource NMT&#xff0c…

Big Data Security Part One: Introducing PacketPig

Series Introduction Packetloop CTO Michael Baker (cloudjunky) made a big splash when he presented ‘Finding Needles in Haystacks (the Size of Countries)‘ at Blackhat Europe earlier this year. The paper outlines a toolkit based onApache Pig, Packetpig pack…

美国科学家成功恢复老年人工作记忆,望奠定认知干预疗法基础

来源&#xff1a;科技日报伴随着人体衰老&#xff0c;大脑对信息加工和贮存的能力也必然会下降&#xff0c;但如果这种能力可以被逆转呢&#xff1f;据英国《Nature Neuroscience》杂志8日在线发表的一项研究&#xff0c;美国科学家通过同步脑区节律——按特定节律刺激颞叶和额…

SQL Server--通过存储过程生成表数据的脚本

CREATE PROCEDURE dbo.UspOutputData   tablename sysname AS declare column varchar(1000) declare columndata varchar(1000) declare sql varchar(4000) declare xtype tinyint declare name sysname declare objectId int declare objectname sysname declare ident int…

广告机市场和产品

广告机行业分析 前言 关于广告机&#xff0c;不同的人有不同的认识&#xff0c;此部分主要说明文中所指广告机的范围。 在讨论前&#xff0c;先区分几个概念。 1、 广告机与数字标牌 数字标牌是数字标示牌的简称&#xff0c;指代显示任意信息的显示终端&#xff1b;广告机是指…

《工业大数据白皮书》2019版正式发布

来源&#xff1a;悟空智能科技近日&#xff0c;由中国电子技术标准化研究院、全国信息技术标准化技术委员会大数据标准工作组主编&#xff0c;工业大数据产业应用联盟联合主编&#xff0c;联想集团等多家联盟成员企业参编的《工业大数据白皮书&#xff08;2019版&#xff09;》…

产品金字塔

制造业产品大概可以分为三个层次&#xff0c;第一层为实物&#xff0c;第二层为服务&#xff0c;第三层为体验。其中产品为基础&#xff0c;服务为改善&#xff0c;共同给客户美好的体验。三者组成一个产品金字塔。第一层&#xff0c;实物。比如手机&#xff0c;满足通话、上网…

在 Tomcat 中设置 JDBCRealm

除了默认配置的 DataSourceRealm&#xff0c;Tomcat 还支持 JDBCRealm&#xff0c;它通过 JDBC 来访问记录在关系数据库里的认证信息。 JDBCRealm 的配置步骤如下&#xff1a; 在 $TOMCAT_HOME\conf\server.xml 配置 <Reaml/> 元素。 <Realm className"org.apac…

学界 | UC伯克利发布一个低成本家居机器人,会叠衣服、会泡咖啡

BLUE 机器人叠毛巾&#xff0c;实际花费时间约 50 秒来源&#xff1a;AI科技评论加州大学伯克利分校 Pieter Abbeel 教授今天在推特公开宣布了伯克利机器人学习实验室最新开发的机器人 BLUE。这款机器人的特点是低成本&#xff08;不到 5000 美元&#xff09;、基于 AI 控制&am…

硬件产品的成本构成——研发、产品边际成本和服务

硬件产品的成本构成一款硬件产品的成本由许多因素构成&#xff0c;主要可以归为三类&#xff1a;研发成本、产品边际成本和服务成本。这里借用了经济学中的一个概念&#xff1a;边际成本&#xff0c;即增加一单位的产量所带来的成本增加量。对于任何一款硬件产品&#xff0c;每…

JAVA并发编程3_线程同步之synchronized关键字

在上一篇博客里讲解了JAVA的线程的内存模型&#xff0c;见&#xff1a;JAVA并发编程2_线程安全&内存模型&#xff0c;接着上一篇提到的问题解决多线程共享资源的情况下的线程安全问题。 不安全线程分析 public class Test implements Runnable {private int i 0;private i…

深度学习技术发展趋势浅析

来源&#xff1a;中国信息通信研究院CAICT当前&#xff0c;人工智能发展借助深度学习技术突破得到了全面关注和助力推动&#xff0c;各国政府高度重视、资本热潮仍在加码&#xff0c;各界对其成为发展热点也达成了共识。本文旨在分析深度学习技术现状&#xff0c;研判深度学习发…