【Python矩阵及其基础操作】【numpy matrix】
一、矩阵生成
1、numpy.matrix:
- import numpy as np
- x = np.matrix([ [1, 2, 3],[4, 5, 6] ])
- y = np.matrix( [1, 2, 3, 4, 5, 6])
- print(x, y, x[0, 0], sep='\n\n')
- matrix([[1, 2, 3]
- [4, 5, 6]])
- [[1 2 3 4 5 6]]
- 1
- [[1 2 3]]
2、numpy.matlib.empty( shape, dtype, order)
- shape:定义新矩阵形状的整数或整数元组
- dtype:数据类型,可选。
- order:C(行序优先)或F(列序优先)
- import numpy.matlib
- import numpy as np
- print (np.matlib.empty((2,2)))
- #输出一个填充为随机数的2行2列的矩阵
3、numpy.matlib.zeros() numpy.matlib.ones()
- import numpy.matlib
- import numpy as np
- print (np.matlib.zeros((2, 2))) #输出一个全为0的2行2列矩阵
- print (np.matlib.ones((2, 2))) #输出一个全为1的2行2列矩阵
4、numpy.matlib.eye()
返回一个对角元素为1,其他位置为0的矩阵,当M=n时为单位矩阵。
- #numpy.matlib.eye( n, M, k, dtype)
- '''n:返回矩阵的行数
- M:返回矩阵的列数,默认为n
- k:对角线的索引
- dtype:数据类型 '''
- import numpy.matlib
- import numpy as np
- print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = int)
- [[1 0 0 0]
- [0 1 0 0]
- [0 0 1 0]]
5、numpy.matlib.identity()
返回给定大小的单位矩阵。单位矩阵是一个方针,其左上角到右下角的对角线上的元素均为1,其余位置全为0。
- import numpy.matlib
- import numpy as np
- print (np.matlib.identity(4, dtype = int)) #输出4*4的单位矩阵
6、numpy.matlib.rand()
创建一个给定大小的、数据是随机填充的矩阵。
- import numpy.matlib
- import numpy as np
- print (np.matlib.rand(4, 4)) #输出一个4*4的矩阵
二、矩阵常用操作
1、矩阵与二维数组相互转换
矩阵总是二维的,ndarray是一个n维数组,可以用如下代码使其相互转换
- import numpy.matlib
- import numpy as np
- a = np.matrix('1,2;3,4') #创建一个2*2矩阵a
- print(a) #输出矩阵a
- b = np.asarray(a) #将矩阵a转换为2维数组b
- print(b) #输出数组b
- c = np.asmatrix(b) #将数组b转换为矩阵c
- print(c) #输出矩阵c
代码中的三个print输出的结果均为 [[1 2]
[3 4]]
2、矩阵转置
- import numpy as np
- a = np.matrix([1, 2],[3, 4]])
- print(a.T) #输出a的转置矩阵
3、查看矩阵特征
- import numpy as np
- x = np.matrix([[1, 2, 3],[4, 5, 6]])
- print(x.mean()) #输出所有元素平均值
- print(x.mean(axis=0)) #输出纵向平均值
- print(x.mean(axis=1)) #输出横向平均值
- print(x.sum()) #输出所有元素之和
- print(x.max(axis=1)) #输出横向最大值
- print(x.argmax(axis=1)) #输出横向最大值的下标
- print(x.diagonal()) #输出对角线元素
4、矩阵乘法
矩阵乘法可直接使用*连接两个矩阵
- import numpy as np
- x = np.matrix([[1, 2, 3],[4, 5, 6]])
- y = np.matrix([[1, 2],[3, 4],[5, 6]])
- print(x*y)
输出结果为
[[22 28]
[49 64]]
5、numpy,linalg函数
- diag:以一维数组的形式返回方阵的对角线元素,或将一维数组转换为方阵(非对角线元素为0)
- dot:矩阵乘法
- trace:计算对角线元素的和
- det:计算矩阵行列式
- eig:计算方阵的特征值和特征向量
- inv:计算方阵的逆
- svd:计算奇异值分解(SVD)
- solve:解线性方程组Ax=b,其中A为一方阵
- lstsq:计算Ax=b的最小二乘解
- #numpy.dot()演示
- import numpy.matlib
- import numpy as np
- a = np.array([[1, 2],[3, 4]])
- b = np.array([[11, 12],[13, 14]])
- print(np.dot(a,b))
- #输出结果为
- [[37 40]
- [85 92]]
【Python矩阵及其基础操作】【numpy matrix】的更多相关文章
- Python科学计算基础包-Numpy
一.Numpy概念 Numpy(Numerical Python的简称)是Python科学计算的基础包.它提供了以下功能: 快速高效的多维数组对象ndarray. 用于对数组执行元素级计算以及直接对数 ...
- 【Learning Python】【第二章】Python基础类型和基础操作
基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...
- 【Python数组及其基础操作】【numpy ndarray】
一.创建数组 在python中创建数组最简单的办法就是使用array函数.它接受一切序列型的对象,然后产生一个含有传入数据的numpy数组.其中,嵌套序列(比如由一组等长列表组成的列表)会被转换为一个 ...
- python文件的基础操作
import os print(,'-')) print(os.getcwd()) print(,'-')) print(os.listdir()) print(,'-')) print(os.lis ...
- python Opencv图像基础操作
读取并显示图像 如果读取图像首先要导入OpenCV包,方法为: import cv2 读取并显示图像 img = cv2.imread("C:\test1.jpg") OpenCV ...
- Python的数据基础库Numpy怎样对数组进行排序
Numpy怎样对数组排序 Numpy给数组排序的三个方法: numpy.sort:返回排序后数组的拷贝 array.sort:原地排序数组而不是返回拷贝 numpy.argsort:间接排序,返回的是 ...
- Python——控件基础操作
一.生成主窗口(主窗口操作) window=tkinter.Tk() #修改框体的名字,也可在创建时使用className参数来命名: window.title('标题名') #框体大小可调性,分别表 ...
- python列表的基础操作
Operation Result Trans x in s True if an item of s is equal to x, else False x值是否在s列表中 x not in s Fa ...
- 深度学习入门者的Python快速教程 - 基础篇
5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...
随机推荐
- C语言数据结构——第二章 线性表
二.线性表 2.1-线性表简介 2.1.1-线性表的定义 线性表是由若干个相同特性的数据元素组成的有限序列.若该线性表不包含任何元素,则称为空表,此时长度为0,当线性表不为空时,表中的元素的个数就是线 ...
- Reinforcement Learning,微信公众号:DRL学习
欢迎大家关注微信公众号:DRL学习,我们一起来学习强化学习和深度强化学习的算法及现状应用问题. 强化学习简单说就是学习如何最大化未来奖励的预期总和,以及agent学会在环境中做出的行动序列,其中随机状 ...
- 安装VMware Tools和设置屏幕
在虚拟机窗口的虚拟机-安装VMware Tools,点击安装,直到安装完成,出现以下界面 在主文件夹中新建VM文件夹,将VMware Tools中的VMwareTools-10.0.10-430167 ...
- 有源汇有上下界最大流 (ZQU1591)
题意:现在的网络有一个源点s和汇点t,求出一个流使得源点的总流出量等于汇点的总流入量,其他的点满足流量守恒,而且每条边的流量满足上界和下界限制. 思路:要满足每一个点的流量守恒,我们可以尝试像无源汇上 ...
- caffe_ocr开源项目学习笔记
本机配置cuda8.0使用的cudnn是下面要说的重点,vs2015,win10,1080Ti 下载了开源项目:https://github.com/senlinuc/caffe_ocr 编译的时候报 ...
- rabbitmq - 简单认识
1. 概述 与 rabbitmq 做交互 amqp 最著名的实现 与 jms 最明显的区别 消息 不是去找 queue 而是去找 exchange 2. rabbitmq 基本组件 sender 发送 ...
- MySQL命令行脚本
1. 命令行连接 打开终端,运行命令 mysql -uroot -p 回车后输入密码,当前设置的密码为mysql 退出登录 quit 和 exit 或 ctrl+d 查看版本:select versi ...
- oracle备份报“EXP-00056: 遇到 ORACLE 错误 12541”
今天准备接手一个新项目,首先是dang项目和备份数据库到本地,但是在备份数据库的时候报错误: EXP-00056: 遇到 ORACLE 错误 12541 ORA-12541: TNS: 无监听程序 E ...
- .net core 删除主表,同时删除子表
前提条件: 代码懒加载, 数据库有外键关联 var entity = context.主表.Include(o => o.子表).FirstOrDefault(p => p.Id == i ...
- LAMP源码编译
---恢复内容开始--- 1.LAMP源码编译的基础环境 安装组建包:yum groupinstall "Development Tools" "Development ...