Python里矩阵、数组和元组的格式与用法非常容易让初学者混淆,翻阅了很多网页也没有找到很清晰的整理,在这篇文章中进行简要讲解。
1. 首先在python里定义一个矩阵,此处介绍两种建议的定义矩阵方法:
首先import numpy
from numpy import random import numpy as np
①利用random函数
A = random.random((3,3)) print(A)
系统会随机生成一个3×3的矩阵,每一个元素均为(0,1)随机数。
②利用numpy中empty函数
Y = np.empty((2,2), dtype = int) print(Y)
empty函数用法参考此处。
对于矩阵来说,可以通过A(x,y)的方式来查找特定元素。
对于已经形成的矩阵,其为一个数组。其元素可以通过来修改。
A(x,y) = new_element
2. 接下来介绍tuple(元组)
元组与列表功能相近,但区别在于tuple无法修改。之前看到一个评论,讲的是列表相当于数组,而元组相当于结构。
首先创建一个3×3的随机矩阵用于接下来的讲解,这里利用了random.seed(1)来保证每一次创建的随机矩阵是相同的。
random.seed(1)
A = random.random((3, 3))
print("original:")
print(A)
创建的矩阵如下:
下面将矩阵转变为tuple,B为tuple处理后的A:
B = tuple(A)
print("nafter tuple")
print(B)
它是由3个行向量组成的array进一步组成的元组。元组中的元素是无法修改的,如果对B进行如下操作,会得到error:
B[1] = array([1,1,1])
但由于该元组内均为数组构成,所以可以对其中的某一个元素进行修改,可得到结果:
B[1][1] = 1.5
print("after changing element")
print(B)
3. 接下来介绍array(数组)
接着刚才的矩阵A进行探讨,若对矩阵A进行array操作
C=array(A)
print("nafter array")
print(C)
得到的C与A完全相同,这也对应了文章之前所介绍的矩阵是作为数组格式存放在寄存器中。
下面重新定义list D
D = [[1,0,0],[1,1,0],[1,1,1]]
print("original:")
print(D)
这里简单引入数列(list)的介绍,D是由三个数列组成的数列,对于list格式的数据,可以采取以下方法来进行元素的调取:
D[1]或D[0:2],但无法用矩阵的方法去进行特定元素的调取。若输入D[1,1],则python会报错
系统清晰提示了:对于list格式的索引, 必须为整数或切片,不能是[x,y]类的组。
进一步对数列D进行操作,B是经过tuple操作后的结果
B = tuple(D)
print("nafter tuple")
print(B)
从数列转变为了元组,元组内有三个list。
进一步对数列D进行操作,C是经过array操作后的结果
C = array(D)
print("nafter array")
print(C)
数列格式被转换成了矩阵格式,可以采用矩阵的操作(例如:C[1,1])来索引具体元素。



