如何将矩阵中一行中的所有值设置为特定值(如果该值已存在于行python中)

2024-09-30 01:31:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如果矩阵中的某一行随机存在相同的值,如何将该行中的所有元素更改为某个值? 我想找到所有行中的所有元素'-3',并将所有元素设置为该值。 这是我目前所得到的,但我的循环似乎不起作用。 我将对所有行进行排序并删除第一列。那很好。在

def computeFinalGrades(grades):
if len(grades) <=1 :    
    gradesFinal=grades
if len(grades) > 1 : 
    for i in range(len(grades)):
        if np.any(grades[i,:]) ==(-3) :
            b=np.zeros(np.shape(grades[1]))
            b[b==0]=-3
            grades[i,:]=b
    grades1=np.sort(grades)
    grades2=np.delete(grades1,0,axis=1)
    gradesFinal=roundGrade(grades2.mean(1))
return gradesFinal
print(computeFinalGrades(np.matrix([[-3,0,3],[5,3,4],[9,5,6],[6,5,8]])))

它应该取第一行并将所有元素替换为'-3'

我的输出应该是预期的

^{pr2}$

Tags: in元素forlenif排序defnp
2条回答

在np.任何(grades[i,:])总是返回true,因此使用它显然是错误的函数。为什么要用numpy?在

此外,您还应该包括导入行,以便人们测试您的代码:

 #!/usr/bin/env python
 import numpy as np

检查一下:

for i in range(grades.shape[0]):
 if any(j == -3 for j in grades[i,:]):
        grades[i,:] = -3

相关问题 更多 >

    热门问题