# 数组--------------------
# 定义一个[n,m]的二维数组
n, m = 3, 4
array_2 = [[None for i in range(n)] for i in range(m)]
# 定义一个[x,y,x]的三维数组
x, y, z = 2, 3, 4
array_3 = [[[None for i in range(x)] for i in range(y)] for i in range(z)]
# 求[m,n]两矩阵和
def add_matrix_2(a, b, m, n): # a和b必须矩阵的行列数量相同
sum = [[None for i in range(m)] for j in range(n)]
for i in range(0, m):
for j in range(0, n):
sum[m][n] = a[m][n] + b[m][n]
return sum
# 二维矩阵相乘
def multiply_matrix_2(a, b, a_line, a_column, b_line, b_column): # a*b矩阵
if a_line != b_column or a_column != b_line:
print('不满足条件\n')
return None
else:
multiply_matrix = [[None for i in range(b_column)] for j in range(a_line)]
term = 0
for x in range(a_line):
for y in range(a_column):
term += a[a_line][a_column] * b[a_column][a_line]
multiply_matrix[a_line][a_column] = term
return multiply_matrix
# 二维矩阵转置
def transposition_matrix_2(a, m, n):
a_t = [[None for i in range(m)] for j in range(n)]
for i in range(m):
for j in range(n):
a_t[m][n] = a[n][m]
return a_t
# 稀疏矩阵压缩
def compress_matrix_2(a, m, n):
rar_matrix[0][0] = m # 行数
rar_matrix[0][1] = n # 列数
temp = 1
flag = 0 # 为0的个数
for i in range(m):
for j in range(n):
if a[m][n] != 0:
rar_matrix[temp][0] = i
rar_matrix[temp][1] = j
rar_matrix[temp][2] = a[m][n]
temp += 1
rar_matrix[0][2] = temp
return rar_matrix
# 上三角矩阵转列表
def change_matrix_2_to_list(a, m, n):
list_1 = []
for i in range(m):
for j in range(n):
if a[m][n] != 0:
list_1.append(a[m][n])
return list_1
数组(python3)
猜你喜欢
转载自blog.csdn.net/zhangyu4863/article/details/80787235
今日推荐
周排行