首页 > 编程语言 >Python中的矩阵——NumPy包

Python中的矩阵——NumPy包

时间:2022-10-23 14:12:18浏览次数:47  
标签:.+ Python numpy 矩阵 数组 array NumPy

Part 1 安装NumPy包,以VScode为例:

打开Visual Studio Code,选取任一python项目文件,运行该文件,在终端(Terminal)中输入cd + 空格 + Python安装目录下Scripts文件的路径,例如我的Python安装在D:\Python\app\Scripts,因此我需要输入:cd D:\Python\app\Scripts 

输入后按下回车得到 D:\Python\app\Scripts >     输入 .\pip install numpy 再按下回车即可

1 PS D:\PythonWork> cd D:\Python\app\Scripts    #标红加粗部分即为输入部分 因为我已经安装过因此显示的为以下这些,若未安装过显示下载进度条以及包的大小
2 PS D:\Python\app\Scripts>  .\pip install numpy                                                    
3 Requirement already satisfied: numpy in d:\python\app\lib\site-packages (1.23.4)
4 WARNING: You are using pip version 22.0.4; however, version 22.3 is available.
5 You should consider upgrading via the 'D:\Python\app\python.exe -m pip install --upgrade pip' command.
6 PS D:\Python\app\Scripts> 

Part 2 数组与矩阵

创建数组

Python中没有数组和矩阵的内置类型,但可以将列表近似为数组和矩阵,如一个两行三列的矩阵我们可以表示为:

A = [[1,2,3],
     [4,5,6]]

而当导入numpy包后,我们就可以开始创建真正意义上的数组了

在numpy包中有整数型,浮点型和复数型数组,创建方法为:

arrayName = numpy.array(list, dtypt = type)  #数组\矩阵名 = numpy.array(列表, dtype = 数组类型) 其中dtype可省略,默认为列表中元素的类型

实例01:创建数组

1 import numpy
2 A = [[1,2,3],
3      [4,5,6]]
4 a = numpy.array(A)           #创建整形数组a
5 b = numpy.array([1.2, 2.0, 3.1])                 #创建浮点型数组b
6 c = numpy.array(A,dtype = complex) #创建复数数组c
7 print(a,'\n\n',b,'\n\n',c)                     #输出数组a,b,c
8 print(type(a),'\n',type(b),'\n',type(c))                      #输出数组a,b,c的类型

输出后得到:

 1 [[1 2 3]
 2  [4 5 6]] 
 3 
 4  [1.2 2.  3.1] 
 5 
 6  [[1.+0.j 2.+0.j 3.+0.j]
 7  [4.+0.j 5.+0.j 6.+0.j]] 
 8 
 9 <class 'numpy.ndarray'> 
10  <class 'numpy.ndarray'> 
11  <class 'numpy.ndarray'>

特殊数组矩阵 0、1数组,单位矩阵:

在导入numpy包后,我们可以使用zeros和ones函数创建成员全部为0或者为1的数组

ArrayName = numpy.zeros((row,column))  #row为行数,column为列数
ArrayName = numpy.ones((row,column))
ArrayName = numpy.eye((row,column))

实例02:创建0,1数组,单位矩阵

 1 import numpy
 2 A = [[1,2,3],
 3      [4,5,6]]
 4 a = numpy.array(A)           #创建整形数组a
 5 b = numpy.array([1.2, 2.0, 3.1])                 #创建浮点型数组b
 6 c = numpy.array(A,dtype = complex) #创建复数数组c
 7 print(a,'\n\n',b,'\n\n',c,'\n')                     #输出数组a,b,c
 8 print(type(a),'\n',type(b),'\n',type(c))                      #输出数组a的类型
 9 zeors_array = numpy.zeros((2,3))
10 print(zeors_array,'\n\n')
11 ones_array = numpy.ones((2,5),dtype = numpy.int32)
12 print(ones_array)                   #生成3x3的单位矩阵
13 C = numpy.eye(3,3)
14 print('\n\n\n',C)
15 
16 '''
17 输出结果:
18 [[1 2 3]
19  [4 5 6]] 
20 
21  [1.2 2.  3.1] 
22 
23  [[1.+0.j 2.+0.j 3.+0.j]
24  [4.+0.j 5.+0.j 6.+0.j]] 
25 
26 <class 'numpy.ndarray'> 
27  <class 'numpy.ndarray'> 
28  <class 'numpy.ndarray'>
29 [[0. 0. 0.]
30  [0. 0. 0.]] 
31 
32 
33 [[1 1 1 1 1]
34  [1 1 1 1 1]]
35 
36 
37 
38  [[1. 0. 0.]
39  [0. 1. 0.]
40  [0. 0. 1.]]
41 
42 
43 '''

 

使用arange()函数和reshape()函数创建数组:

arange(n)函数可以生成一行n列的列表,其列表元素会依次递增1直到最后一个n-1,类似于range函数,只不过生成的是一个数组而不是依次生成单个数字

reshape(n,m)函数配合arange()可以生成指定形状(n行m列)的数组

实例03:使用arange()函数和reshape()函数创建数组

import numpy
A = numpy.arange(4)                 #生成一行四列元素为0-3的列表
print('A=',A)
B = numpy.arange(4).reshape(2,2)    #生成二行二列元素为0-3的列表
print('\n\nB=',B)


'''输出结果:
A= [0 1 2 3]


B= [[0 1]
 [2 3]]
'''

 

数组、矩阵运算

 矩阵的加法,导入numpy包后,我们可以直接使用 ‘ + ’ 进行矩阵相加,但是必须是相同行数相同列数的两个矩阵

而乘法分为两种,一种是元素数组乘法,即每个元素对应相乘,同样要求数组行数列数相同,另一种为左乘,即矩阵左乘,使用函数dot()

A.dot(B)  即矩阵A左乘矩阵B

实例04:进行数组和矩阵的加法和乘法运算

 

 1 import numpy
 2 #生成矩阵
 3 A = numpy.array([[2,4],[5,-6]])
 4 B = numpy.array([[9,-3],[3,6]])
 5 C = numpy.array([[3,6,7],[5,-3,0]])
 6 D = numpy.array([[1,1],[2,1],[3,-3]])
 7 #加法
 8 Sum = A + B
 9 #数组乘法
10 mult1 =  A * B
11 #矩阵乘法
12 mult2 = C.dot(D)
13 print('A+B:\n',Sum,'\n\nA数乘B:\n',mult1,'\n\nC左乘D:\n',mult2)

运行后得到以下输出:

A+B:
 [[11  1]
 [ 8  0]] 

A数乘B:
 [[ 18 -12]
 [ 15 -36]] 

C左乘D:
 [[ 36 -12]
 [ -1   2]]

矩阵转置

在numpy包中,可以使用transpose函数计算矩阵的转置

ArrayNmae.transpose()

实例05:

生成一个矩阵,并对其进行转置操作

1 import numpy
2 #生成矩阵
3 A = numpy.array([[1,1],[2,1],[3,-3]])
4 #对矩阵进行转置
5 B = A.transpose()
6 print('原矩阵:\n',A,'\n\n转置后:\n',B)

运行后得到以下结果

原矩阵:
 [[ 1  1]
 [ 2  1]
 [ 3 -3]] 

转置后:
 [[ 1  2  3]
 [ 1  1 -3]]

矩阵的逆等部分(待更新)

 

标签:.+,Python,numpy,矩阵,数组,array,NumPy
From: https://www.cnblogs.com/AZhua/p/16818332.html

相关文章

  • 我决定以后一直使用Eclipse了 因为它也可以安装集成PyDec插件来实现Python开发了 哇哈
    前言​​Python​​​作为当今主流的爬虫编程语言,在我们的开发当中时不时都会使用到一些,那么如果你想再​​Eclipse​​​当中进行一些​​Python​​​的开发就要安装一下......
  • win11系统下python3.10安装face_recognition和dlib
     作者:......
  • Python笔记
    @目录前言总结如何搭建虚拟环境main.py文件一定要根目录下面python中类的变量和实例变量的区别pyqt5的按钮点击事件删除线程函数问题使用pyinstaller编译成exe 如果提示 ......
  • Python正则表达式
    1.10Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re模块使Python语言拥有全部的正则表达式功能。compile......
  • # yyds干货盘点 # 盘点Python网络爬虫过程中xpath的联合查询定位一个案例
    大家好,我是皮皮。一、前言前几天在Python钻石交流群【髙鵬】问了一个​​Python​​网络爬虫的问题,提问截图如下:原始代码如下:importtimefromseleniumimportwebdriverfro......
  • python虚拟环境搭建
    @目录前言创建激活运行CodeRunner使用虚拟环境在线安装离线安装前言使用Python开发项目免不了要安装各种包。我们安装的所有包都会被安装到同一个目录下,供Python调用。......
  • 力扣1768(java&python)-交替合并字符串(简单)
    题目:给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返......
  • 【Python】第3章-21 判断回文字符串
    输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结......
  • 【Python】第3章-20 逆序的三位数
    程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。......
  • 【Python】第3章-19 删除字符
    本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。......