python学习笔记(3)--矩阵相关、numpy基础

用Python解矩阵方程——Numpy模块 用Python解矩阵方程,可以用两个模块——Numpy和Sympy 矩阵方程:Ax=b A为系数矩阵,b为解集矩阵 令B为A的增广矩阵 1、Ax=b无解的充要条件:r(A)+1=r(B) 2、Ax=b唯一解的充要条件:r(A)=r(B)=n 3、Ax=b无穷多解的充要条件:r(A)=r(B)<n 1、Numpy 这里要用到numpy.linalg模块 import numpy as np # numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等 阅读详情

文章目录


##0.导入numpy

#!/usr/bin/env python3 
# -*- coding: utf-8 -*-

import numpy as np
#from numpy import * 和 import numpy as np的区别
#当我们使用from * 的时候,会取得模块顶层左右赋值的变量名的拷贝。。
#后者是通过模块名获取变量名
#在实践中, "from module import *" 不是良好的编程风格,如果使用from导入变量,且那些变量碰巧和作用域中现有变量同名,那么变量名就会被悄悄覆盖掉。使用import语句的时候就不会发生这种问题,因为我们是通过模块名才获取的变量名,像module.attr不会和现有作用域的attr冲突。
# 显示numpy版本信息
print (np.version.version)

##1.创建数组/矩阵

# 以List或tuple产生一维数组
print (np.array([1, 2, 3, 4]))
print (np.array((1.2, 2, 3.3, 4)))

# 以List或tuple产生二维数组
a = np.array([[1, 2], [3, 4]])
print (a)
# 生成数组时指定数据类型
a = np.array((1.2, 2, 3, 4), dtype = np.int32)
print (a)
# 以np.zeros创建三维数组
a = np.zeros((2, 2, 2))
print (a)

# 使用arange生成数组
a = np.arange(15) # 生成0-14 共15个数字 
print (a)

# 使用reshape生成3*5数组
a = np.arange(15).reshape(3, 5)
print (a)

# 从1到10产生5个数
a = np.linspace(1, 10, 5)
print (a)

# 使用numpy.zeros, numpy.ones, numpy.eye方法构造特定矩阵
a = np.zeros((3, 4))
print (a)

a = np.ones((5, 5))
print (a)

a = np.eye(3)
print (a)

# 生成随机矩阵
# np.random.rand(a, b):生成a行b列的矩阵,随机的浮点数,范围在[0,1)。
a = np.random.rand(2, 3)
print (a)
# np.random.randint(low, high, size):生成形状为size的随机矩阵
# 矩阵的每一个元素都是整数,且范围在[low,high)之间。
a = np.random.randint(0, 10, (2, 3))
print (a)

# python中 list 与数组的互相转换
#list转array
#np.array(a)
#array 转list
#a.tolist()

##2.获得矩阵属性

# 2.获得数组的属性
a = np.zeros((2, 3))
print ("维度:", a.ndim)
print ("矩阵每一维的大小:", a.shape)
print ("数组的元素数:", a.size)
print ("数组的元素类型:", a.dtype)
print ("每个元素所占的字节数:", a.itemsize)

##3.矩阵操作

# 3.数组操作

# 数组索引
a = np.array([[1, 2, 3], [4, 5, 6]])
print (a)
print ("a[1, 2] =", a[1, 2])
# 数组切片
print ("a[1, :] =", a[1, :])
print ("a[1, 1:2] =", a[1, 1:2])
# for 循环遍历矩阵
print ("for循环遍历行:")
for row in a:
	print(row)
print ("for循环遍历列:")
for col in np.transpose(a):
	print(col)

# 数组赋值
a[1, :] = [7, 8, 9]
print (a)

# 合并数组
b = np.eye(2)
c = np.eye(3)
print ("水平合并:\n",np.hstack((a, b))) # 水平合并
print ("竖直合并:\n",np.vstack((a, c))) # 竖直合并
# 给矩阵添加行或列
print (np.r_[a, c])  # 添加行
print (np.c_[a, b])  # 添加列

注:在使用合并数组或给矩阵添加行列时,不改变原有矩阵的行列数,见下面代码:

#!/usr/bin/env python3 
# -*- coding: utf-8 -*-
import numpy as np

a = np.array([[2,2], [2,2]])
print(a)
b = np.array([[2],[2]])
print(b)

k = np.c_[a, b]
print(a.shape) #结果为(2,2)
print(k.shape) #结果为(2,3)

##4.基本的数组运算

# 4.基本的数组运算
# 4.1使用数组对象自带的方法
print ("a.sum =", a.sum())
print ("a.sum(axis = 0) =", a.sum(axis = 0)) #计算每一列的和
print ("a.min =", a.min())

# 4.2使用numpy下的方法
print (np.sin(a))
print (np.floor(a))
print (np.exp(a))

##5.基本的矩阵运算

import numpy.linalg as nplg #numpy.linalg模块中有很多关于矩阵运算的方法

###5.1 矩阵的加减乘(矩阵乘法、数乘)除

# 5.1 矩阵的加减乘(矩阵乘法、数乘)除
a = np.ones([2, 2])
b = np.eye(2)
print (a)
print (b)
print (a + b)
print (b * 2)
print (a * b)        # 数乘:每个元素对应相乘
print (np.dot(a, b)) # 矩阵乘法
print (b / (a * 2))  # 每个元素对应相除
print ((a * 2) ** 4) # 每个元素对应的4次方

###5.2 线性代数运算

# 5.2 线性代数运算
a = np.array([[1, 0], [2, 3]])
print (a)
b = np.mat([[1, 2], [3, 4]])
print ("b = \n", b)
# 矩阵的转置
a = a.transpose()
print ("矩阵的转置:\n", a)
print ("矩阵的转置:\n", b.T)
# 矩阵的迹:方阵主对角线上元素之和
print ("矩阵的迹:\n",np.trace(a))
# 矩阵求逆
print ("矩阵的逆:\n",np.linalg.inv(a))
print ("矩阵的逆:\n", b.I)
# 计算行列式
print ("行列式:\n",np.linalg.det(a))
# 特征值特征向量
print ("特征值特征向量:\n",nplg.eig(a))
# 向量的最大最小值、加和、平均值、范数
print(np.sum(a)) # >>> 47
print(np.max(a)) # >>> 9
print(np.min(a)) # >>> 0
print(np.average(a)) # >>> 4.7
print(np.linalg.norm(a)) # >>> 18.1383571472

# 向量内积
v1 = np.array([1, 2, 3])
v2 = np.array([2, 3, 4])
print (np.inner(v1, v2))

# 求范数
x = np.array([[0, 3, 4], [2, 6, 4]])
y = np.linalg.norm(x, axis = 1)
print ("x = \n", x)
print ("向量x的一范数y = ", y)

a=np.array([[complex(1,-1),3],[2,complex(1,1)]])  
print(a)
print("矩阵2的范数")
print(np.linalg.norm(a,ord=2) )   #计算矩阵2的范数
print("矩阵1的范数")
print(np.linalg.norm(a,ord=1) )   #计算矩阵1的范数
print("矩阵无穷的范数")
print(np.linalg.norm(a,ord=np.inf) )

###5.3 矩阵的轴参数

轴(axis)表示的是矩阵的维度,以下图为例:
这里写图片描述

>>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \
columns=["col1", "col2", "col3", "col4"])
>>>df
   col1  col2  col3  col4
    0     1     1     1     1
    1     2     2     2     2
    2     3     3     3     3
如果我们调用df.mean(axis=1),我们将得到按行计算的均值
>>> df.mean(axis=1)
0    1
1    2
2    3

简单的来记就是axis=0代表跨行(down),而axis=1代表跨列(across)。

换句话说:
使用0值表示沿着每一列或行标签\索引值向下执行方法
使用1值表示沿着每一行或者列标签模向执行对应的方法

https://www.cnblogs.com/rrttp/p/8028421.html


教程1:
https://www.jb51.net/article/49397.htm
教程2:
https://blog.youkuaiyun.com/guoziqing506/article/details/71078576

Python Numpy库中矩阵用法快速指南 Python Numpy库中矩阵用法指南 矩阵是一个由m*n个数排成的m行n列的表称为m行n列的矩阵,简称为m*n矩阵。下面的矩阵是一个3*2(3乘2)矩阵,因为它有三行四列。 在数学的概念中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科... 阅读详情

相关推荐

python numpy 矩阵编程练习 求矩阵每列的最大值

python numpy 矩阵编程练习 求矩阵每列的最大值 编写程序实现:用3*5的整型矩阵a接收标准输入的数据,计算数组a的每列元素的最大值,并将第i列最大值存入max相应的第i个元素。 输入格式: 标准输入的每一行表示矩阵a中的一行数据,以空格作为间隔。 输出格式: 标准输出的一行表示max中的元素,用空格作为间隔; 输入样例: 在这里给出一组输入。例如: 1 2 3 4 5 6 7 8 9 0 3 5 7 9 1 输出样例: 在这里给出相应的输出。例如: 6 7 8 9 5 第一步 关于输入 m =

qq_49681171的博客 1万+

chatgpt赋能python:Python创建3*3矩阵-最简单的方法

矩阵是一个由$ m×n $个数字(或符号)排列成的矩形阵列。其中mmm表示行数,nnn表示列数。通常,矩阵中的元素是从左到右,从上到下依次排列的,并用方括号表示。例如,下面是一个3×33×33×3创建3x3矩阵的方法比较简单,Python提供了多种方法可以实现。其中使用NumPy库来创建矩阵是非常方便的一种方法。如果您想要更高级的矩阵操作,建议您学习NumPy库的更多内容。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt。

boRRjxBZRf的博客 2299

Python矩阵计算-Numpy

<基础向> 矩阵类库numpy 的方法 Zeros,生成元素为0的矩阵 B=np.zeros((2,3))#给定元组 ones生成元素为1的矩阵 x=np.ones((2,3)) eye生成单位矩阵 X=np.eye(5) 生成一个5*5的单位阵 np.random.standard_normal((n,m)) 生成n行m列,服从正太分布的随机数矩阵 如: x=np.random.standard_normal((4,4)) np.random....

hhgw2的博客 2592

Python3快速入门(十二)——NumPy

Python3快速入门(十二)——NumPy 一、NumPy简介 1、NumPy简介 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库。Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释器锁),运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,Num...

cdqvkn73338的博客 1052

基于51单片机的智能花盆灌溉系统设计与实现

本文详细介绍了基于51单片机的智能花盆灌溉系统设计与实现,通过DS18B20温度传感器、土壤湿度传感器和LCD1602显示屏等硬件模块,结合精确的算法控制,实现自动监测与灌溉。系统解决了传统灌溉依赖定时器、缺乏可视化界面的问题,适合上班族、园艺爱好者和植物园工作人员使用,有效提升植物养护效率。

honey的博客 1014

解决uc浏览器劫持video标签问题

解决uc视频悬浮播放 ,video标签被浏览器劫持 ,vide0适配

smile_y_y的博客 3449

Python基础实现矩阵类3

Python基础实现矩阵类的化阶梯型,最简阶梯型

ncu5509121083的博客 1620

Python量化交易实战:pytdx库高效获取通达信分笔成交数据

本文详细介绍了如何使用Python的pytdx库高效获取通达信分笔成交数据,为量化交易提供关键市场微观结构分析。通过环境搭建、服务器连接、数据获取与清洗的完整流程,帮助开发者快速掌握这一免费高质量数据源,并实现分笔数据的实战分析与应用。

weixin_29061509的博客 1351

python3数学建模基础(二)矩阵运算

python3数学建模基础(二)矩阵运算 本文适合有python3的numpy库基础的读者。 你需要:①Python IDLE 3.x ②在python中安装numpy库,推荐pip方法安装 import numpy as np from numpy.linalg import * nptest=np.array([[-4,3,0],[3,0,-1],[1,2...

生姜用户的博客 1100

Linux内存优化:KSM技术原理与实践指南

内存共享是提升虚拟化环境资源利用率的关键技术,其核心原理是通过识别相同内容的内存页进行合并。Linux内核的KSM(Kernel Samepage Merging)机制采用红黑树数据结构管理内存页,通过多级哈希比较算法实现高效合并。该技术能显著降低物理内存消耗,提升CPU缓存命中率,特别适用于运行大量相似虚拟机实例的场景。在容器化和云计算环境中,KSM与NUMA优化、内存气球等技术协同,可实现40%-60%的内存节省。典型应用包括金融云平台的高密度虚拟机部署,以及Kubernetes集群的基础镜像优化。

weixin_28730353的博客 369

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, MBD) 的开源自驾仪,可被用来快速构建无人机,无人车,无人船,机器人等平台的控制系统。 系统主要由两部分构成. FMT-Firmware: 一个基于C/C++开发的稳定、高性能的嵌入式系统. FMT-Model: 一个基于MATLAB/Simulink开发的仿真框架以及算法库. 昨天得知FMT开源飞控项目已经开

weixin_45786595的博客 2873

【python数据分析03】——Numpy矩阵与通用函数

如果要对数组进行矩阵运算,则可以调用相应的函数。

zhejie666的博客 4012

在Pycharm中配置Pyqt5工具(2023年新版教程)

在Pycharm中配置Pyqt5相关的三个工具:QtDesigner、PyUIC、PYRCC

网络技术和Python 2万+

Python 矩阵基本运算【numpy】

文章目录一、实验说明二、Python 矩阵基本运算1. python矩阵操作2. python矩阵乘法3. python矩阵转置4. python求方阵的迹5. python方阵的行列式计算方法6. python求逆矩阵/伴随矩阵7. python解多元一次方程 一、实验说明 实验环境 Anaconda + python3.6 + jupyter 二、Python 矩阵基本运算 引入 numpy 库 import numpy as np 1. python矩阵操作 ① 使用 mat 函数创建一个 2X

xwmrcj的博客 10万+

我的宠物狗学编程:从零开始的代码之旅

在这个示例中,我们定义了一个名为"interact"的函数,它通过输入函数获取用户的输入,并根据输入执行相应的代码块。在编程中,我们使用条件语句来根据不同的条件执行不同的代码块。对于我的狗狗,我将创建一个名为"feed"的函数来表示它的进食行为,并根据不同的条件输出不同的信息。在这个示例中,我们定义了一个名为"feed"的函数,并使用一个参数"food"来表示食物。对于我的狗狗,我将创建一个名为"dog_name"的变量来存储它的名字。对于我的狗狗,我将创建一个名为"bark"的函数来表示它的叫声。

2301_79331387的博客 333

STM32N6570-DK识别STLINK问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2209

【Python】numpy矩阵运算大全

因为课程需要,第一次这么彻底地接触numpy。虽闻名已久,但是真正使用numpy才感受到它的强大,发现它尤其适合数据分析与处理。这里根据自己的使用经验简单总结一下numpy在矩阵运算中的应用,之后也会根据自己的实践经历不断更新。

记录学习成长之路,进一寸有进一寸的欢喜 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python列表、Numpy数组与矩阵的区别

参考博客:http://blog.sina.com.cn/s/blog_d8f6ec6b0102wtbh.html、http://blog.sina.com.cn/s/blog_c4520abd0102x7v4.html Python列表和Numpy数组的区别: Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。使用Python列表可以存储一维数组,通过列表的...

wyl1813240346的博客 3万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

numpy矩阵乘法_NumPy矩阵乘法

numpy 矩阵乘法NumPy matrix multiplication can be done by the following three methods. NumPy矩阵乘法可以通过以下三种方法完成。 multiply(): element-wise matrix multiplication. multiple():逐元素矩阵乘法。 matmul(): matrix product o...

从零开始的教程世界 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Python/Numpy之矩阵/数组/列表转换

Python/Numpy之矩阵与数组列表转换 numpy矩阵数组、列表相比较 对比“矩阵数组”与“列表”,“矩阵数组”一般指基于numpy的,由于numpy对其专门优化,因此速度很快,“列表”数python 内置的数据类型,通过嵌套也可以存储多维数据。 数组中对元素的数据类型有同一性要求,列表则相对宽松 numpy的矩阵matrix是数组array的分支,matrix的优势是对于矩阵操作相对简单a * b即矩阵乘法计算,对应数组则需np.dot(a,b),除此之外还有一系列的矩阵操作,如转置、共轭等。

Snfiltration 1万+

利用 Numpy 进行矩阵相关运算

正文共:3266 字 31 图 预计阅读时间: 9 分钟 本文目录: 1. 前言 1.1 基本介绍 1.2 运行环境 2. 函数清单 3. 案例讲解 3.1 Numpy.linalg 3.2 Numpy.matlib 1.前言 1.1 基本介绍 NumPy 是Python数据分析必不可少的第三方库,NumPy 的出现一定程度上解决了Python运算性能不佳的问题,同...

ctrigger的专栏 2257

相关系数矩阵计算_使用NumPy和Pandas在Python中创建相关系数矩阵

机器学习把我整的有点蒙了,今天写点简单的。什么是相关系数矩阵?其实这个东西在数据分析中经常用到,相关系数矩阵可以一次性同时显示多个变量之间的相关关系。当我们做相关系数矩阵时,我们会得到一个包含每个变量与其他变量之间的相关系数的表。表中的系数显示了关系的强度及其方向(正或负相关)。在Python中,我们可以使用Pandas和NumPy创建相关系数矩阵。相关矩阵的应用在写代码之前呢,再给大家明确一下什...

weixin_28811757的博客 8298

【Python】Numpy之矩阵的相关计算及矩阵的选取与切割

Numpy有很多矩阵运算的方法,小白总结了一些常用和认为在算法中用到的方法~ 基础操作: 首先创建两个矩阵 A = np.array([[1,2],[1,2]]) B = np.array([[2,4],[5,5]]) 1.矩阵对应位置的元素相加 #矩阵同位置元素相加 np.add(A,B)#方法1 A+B #方法2 结果都为: array([[3, 6], ...

J小白的博客 7369

基于 NumPy 矩阵的相关系数矩阵计算

相关系数用于衡量两个变量之间线性相关的强度与方向,取值范围为 [-1, 1]。其中,Pearson 相关系数是最常用的类型,计算公式如下:rxy​=∑i=1n​(xi​−xˉ)2​∑i=1n​(yi​−yˉ​)2​∑i=1n​(xi​−xˉ)(yi​−yˉ​)​rxy​:变量 x 与 y 的 Pearson 相关系数。xi​,yi​:变量 x 与 y 的第 i 个观测值。xˉ,yˉ​:变量 x 与 y 的均值。本次实验成功掌握了 NumPy 矩阵的创建方法,以及。

2301_80974548的博客 1401

Python Numpy矩阵乘法

In this tutorial we will see python matrix multiplication using numpy (Numerical Python) library. 在本教程中,我们将看到使用numpy(Numerical Python)库的python矩阵乘法 。 For using numpy you must install it first on your...

culing2941的博客 8116

pearson相关系数_使用NumPy和Pandas在Python中创建相关系数矩阵

机器学习把我整的有点蒙了,今天写点简单的。什么是相关系数矩阵?其实这个东西在数据分析中经常用到,相关系数矩阵可以一次性同时显示多个变量之间的相关关系。当我们做相关系数矩阵时,我们会得到一个包含每个变量与其他变量之间的相关系数的表。表中的系数显示了关系的强度及其方向(正或负相关)。在Python中,我们可以使用Pandas和NumPy创建相关系数矩阵。相关矩阵的应用在写代码之前呢,再给大家明确一下什...

weixin_39640543的博客 2608
上一篇: python学习笔记(2)--python常用方法&&文件读写
下一篇: 考研机试真题--还是畅通工程--浙江大学
SkyeBCI
博客等级 码龄9年 231粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值