无需迭代即可完成的步骤

时间:2019-05-20 21:40:13

标签: python

在矩阵中,通过什么命令可以向上移动到矩阵的某个元素>例如,让矩阵为

A= [[  0. 1. 0. 0. 0. 2. 2. 0. 0. 0. ]
    [  3. 0. 0. 0. 0. 0. 0. 0. 4. 4. ]
    [  0. 0. 5. 5. 5. 5. 5. 0. 4. 0. ]
    [  0. 0. 5. 0. 0. 0. 5. 0. 0. 0. ]
    [  0. 6. 0. 7. 0. 5. 5. 0. 9. 0. ]
    [  6. 6. 6. 6. 5. 5. 0. 9. 9. 9. ]
    [  0. 6. 0. 0. 5. 0. 0. 9. 9. 9. ]]

在第一步中(没有迭代),如果我想使用for循环将所有6和7都设为5,那么该怎么办?使用的编程语言是Python。

2 个答案:

答案 0 :(得分:0)

您的问题太笼统了,如果您试图找到一种更新值的方法,这是使用numpy的方法

import numpy as np 

A= [[  0. ,1., 0., 0. ,0., 2., 2., 0. ,0., 0. ],
    [  3. ,0., 0., 0., 0., 0.,0., 0. ,4., 4. ],
    [  0., 0., 5., 5., 5., 5., 5., 0., 4., 0. ],
    [  0., 0., 5., 0., 0., 0., 5., 0., 0., 0. ],
    [  0., 6., 0., 7., 0., 5., 5., 0., 9., 0. ],
    [  6., 6., 6., 6., 5., 5., 0., 9., 9., 9. ],
    [  0. ,6., 0., 0., 5., 0., 0., 9., 9., 9. ]]

a = np.asarray(A)
print(np.where(a==6., 5, a)) #chaging all 7 and 6 to 5
print(np.where(a==7., 5, a))

请查看您的问题

答案 1 :(得分:0)

您可以通过列表理解来实现

B = [ [5 if n in [6,7] else n for n in row] for row in A ]