一、矩阵生成

  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函数

  1. diag:以一维数组的形式返回方阵的对角线元素,或将一维数组转换为方阵(非对角线元素为0)
  2. dot:矩阵乘法
  3. trace:计算对角线元素的和
  4. det:计算矩阵行列式
  5. eig:计算方阵的特征值和特征向量
  6. inv:计算方阵的逆
  7. svd:计算奇异值分解(SVD)
  8. solve:解线性方程组Ax=b,其中A为一方阵
  9. 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】的更多相关文章

  1. Python科学计算基础包-Numpy

    一.Numpy概念 Numpy(Numerical Python的简称)是Python科学计算的基础包.它提供了以下功能: 快速高效的多维数组对象ndarray. 用于对数组执行元素级计算以及直接对数 ...

  2. 【Learning Python】【第二章】Python基础类型和基础操作

    基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...

  3. 【Python数组及其基础操作】【numpy ndarray】

    一.创建数组 在python中创建数组最简单的办法就是使用array函数.它接受一切序列型的对象,然后产生一个含有传入数据的numpy数组.其中,嵌套序列(比如由一组等长列表组成的列表)会被转换为一个 ...

  4. python文件的基础操作

    import os print(,'-')) print(os.getcwd()) print(,'-')) print(os.listdir()) print(,'-')) print(os.lis ...

  5. python Opencv图像基础操作

    读取并显示图像 如果读取图像首先要导入OpenCV包,方法为: import cv2 读取并显示图像 img = cv2.imread("C:\test1.jpg") OpenCV ...

  6. Python的数据基础库Numpy怎样对数组进行排序

    Numpy怎样对数组排序 Numpy给数组排序的三个方法: numpy.sort:返回排序后数组的拷贝 array.sort:原地排序数组而不是返回拷贝 numpy.argsort:间接排序,返回的是 ...

  7. Python——控件基础操作

    一.生成主窗口(主窗口操作) window=tkinter.Tk() #修改框体的名字,也可在创建时使用className参数来命名: window.title('标题名') #框体大小可调性,分别表 ...

  8. 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 ...

  9. 深度学习入门者的Python快速教程 - 基础篇

      5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明 ...

随机推荐

  1. IntelliJ IDEA 2017.3尚硅谷-----设置项目文件编码

    这也可以 R暂时显示 C转换

  2. ES+VBA 实现批量添加网络图片

    需求:通过自动读取相对应列的图片网址,自动添加到图片列,从而完成添加图片 案例:需要将备注列的图片网址添加到图片列的内容 关键代码 '引入API Private Declare Function UR ...

  3. DataGridView绑定数据源后添加行

    本文链接:https://blog.csdn.net/u012386475/article/details/88639799 在已经绑定数据源时,无法以Add的方式方式添加行,会报错 解决方法一: D ...

  4. java 子线程异常处理

    如何在父线程中捕获来自子线程的异常呢 方法一:子线程中try... catch... 方法二:为线程设置异常处理器UncaughtExceptionHandler (异常处理也是在子线程中执行,相当于 ...

  5. Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]

    Day34     PHP_encrypt_1(ISCCCTF) fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=   下载下来.zip文件  

  6. 概率dp poj 3071

    题目首先给出一个n,表示比赛一共进行n轮,那么队伍就有2^n只队伍输入一个2^n*2^n的矩阵,p[i][j]代表队伍i打败队伍j的概率dp[i][j]代表第i轮比赛的时候,队伍j赢的概率首先初始化时 ...

  7. Opencv模块

    参考博客:https://blog.csdn.net/u012679707/article/details/79505279

  8. 每天进步一点点------DE2-70-TV例子说明

    module Reset_Delay(iCLK,iRST,oRST_0,oRST_1,oRST_2); input iCLK; input iRST; output reg oRST_0; outpu ...

  9. blog主题——田野(1)

    贮存一下,blog代码 QAQ 页首html <link rel='stylesheet' href='https://blog-static.cnblogs.com/files/elkyo/c ...

  10. Java连载82-Set、Collection、List、Map的UML演示

    一.UML演示Collection集合的继承结构图 二.Set集合 1.List存储元素的特点:有序可重复.有序,存进去是什么顺序,拿出来还是什么顺序. 2.Set存储元素的特点:无序不可重复,存进去 ...