如果行中随机位置存在相同的值,如何将矩阵中一行中的所有元素更改为某个值? 我想在所有行中找到所有元素'-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'替换所有元素
我的预期输出应为
[[-3.]
[4.]
[7.]
[7.]]
答案 0 :(得分:1)
检查一下:
for i in range(grades.shape[0]):
if any(j == -3 for j in grades[i,:]):
grades[i,:] = -3
答案 1 :(得分:0)
np.any(grades [i,:])总是返回true,所以它显然是错误的使用函数。为什么要使用numpy?
此外,您应该包含人员的导入行以测试您的代码:
#!/usr/bin/env python import numpy as np