python - 如何找到矩阵中某个位置的相邻元素的最小元素
问题描述
我有一个 5x5 矩阵,我必须找到一个位置的最小相邻元素并将该最小数量添加到该位置......必须对矩阵中的所有元素执行此操作,但第一行和第一列除外。这是矩阵 A= [[1 1 2 2 3],[1 1 0 1 0],[2 0 1 0 1],[3 2 1 2 1],[4 0 1 0 1]]
解决方案
将 numpy 导入为 np
a = [1,2,1,3,1] b = [2,1,2,1,2]
第一个矩阵
def get_matrix1(a,b): d = [] for x in a: for y in b: d.append(abs(yx))
return np.reshape(d,(5,5))
第二矩阵
def get_matrix2():
# Matrix
m1 = get_matrix1(a,b)
print('First Matrix : {}'.format(m1))
# Cumulative Addition
m1[0] = np.cumsum(m1[0])
m1[:,0] = np.cumsum(m1[:,0])
m2 = m1.copy()
print('\nCumulative Addition Matrix : {}'.format(m2))
# Second Matrix
i_rows,j_cols = [0,1,2,3],[0,1,2,3]
edge_rows,edge_cols = [1,2,3,4],[1,2,3,4]
for i,row in zip(i_rows, edge_rows):
for j,col in zip(j_cols, edge_cols):
# old
old = m2[row,col]
print('\nOld : {}'.format(old))
# edges
c,u,l = m2[i,j],m2[i,j+1],m2[i+1,j]
r = (c,u,l)
print('Edges : {}'.format(r))
# new
new = min(r) + old
print('New : {}'.format(new))
# update
m2[row,col] = new
print('Updated Matrix :')
print(m2)
get_matrix2()
推荐阅读
- git - 无版本目录树的重复 repo 导入
- mysql - 无法在嵌套游标存储过程中获得预期输出
- django - 在 Djnago 中配置 postgresql
- python - 如何将 python getter 方法转换为 elasticsearch 查询?
- reactjs - 从服务器获取数据后将数据传递给其他组件并使用该数据加载其他组件
- isabelle - 使用 Pure 中的 ML 函数为类型添加排序
- swift - Swift 在 2 bool didset 调用后调用一个方法
- dart - Flutter中Container的onTap想要调用Callback以及容器的setState
- python - 在生成器中设置 Keras 变量
- gimp - GIMP script-fu 中参数“层”的 ID 无效