回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在这里是因为我有一个关于函数numpy.where的问题。
我需要开发一个程序,用丹麦评分表对学生的成绩进行评分</p>
<p>(丹麦评分标准为7级,从最好的(12)到最差的(-3):1210740200−(三)</p>
<p>以下是等级数组:</p>
<pre><code>grades=np.array([[-3,-2,-1,0],[1,2,3,4],[5,6,7,8],[9,10,11,12]])
</code></pre>
<p>我想做的是:</p>
<pre><code>gradesrounded=np.where(grades<-1.5, -3, grades)
gradesrounded=np.where(-1.5<=grades and grades<1, 0, grades)
gradesrounded=np.where(grades>=1 and grades<3, 2, grades)
gradesrounded=np.where(grades>=3 and grades<5.5, 4, grades)
gradesrounded=np.where(grades>=5.5 and grades<8.5, 7, grades)
gradesrounded=np.where(grades>=8.5 and grades<11, 10, grades)
gradesrounded=np.where(grades>=11, 12, grades)
print(gradesrounded)
</code></pre>
<p>我发现np.where在有一个条件时有效(例如,低于-1.5的等级和高于11的等级),但如果有两个不同的条件(例如,这个:np.where(等级>;=1和等级<;3,2,等级))则不起作用</p>
<p>你知道我怎样才能解决这个问题吗</p>
<p>多谢各位</p>