如果想要对ndarray中的数据进行运算,应该怎么做呢?
通过使用np.where能够进行更加复杂的运算
np.where() # 判断前四名学生,前四门课程中,成绩中大于60的置为1,否则为0 temp = score[:4, :4] np.where(temp > 60, 1, 0) 复合逻辑需要结合np.logical_and和np.logical_or使用 # 判断前四名学生,前四门课程中,成绩中大于60且小于90的换为1,否则为0 np.where(np.logical_and(temp > 60, temp < 90), 1, 0) # 判断前四名学生,前四门课程中,成绩中大于90或小于60的换为1,否则为0 np.where(np.logical_or(temp > 90, temp < 60), 1, 0)如果想要知道学生成绩最大的分数,或者做小分数应该怎么做?
在数据挖掘/机器学习领域,统计指标的值也是我们分析问题的一种方式。常用的指标如下:
min(a, axis) 最小值 Return the minimum of an array or minimum along an axis. max(a, axis]) 最大值 Return the maximum of an array or maximum along an axis. median(a, axis) 中值 Compute the median along the specified axis. mean(a, axis, dtype) 均值 Compute the arithmetic mean along the specified axis. std(a, axis, dtype) 标准差 Compute the standard deviation along the specified axis. var(a, axis, dtype) 方差 Compute the variance along the specified axis.进行统计的时候,axis 轴的取值并不一定,Numpy中不同的API轴的值都不一样,在这里,axis 0代表列, axis 1代表行去进行统计
# 接下来对于前四名学生,进行一些统计运算 # 指定列 去统计 temp = score[:4, 0:5] print("前四名学生,各科成绩的最大分:{}".format(np.max(temp, axis=0))) print("前四名学生,各科成绩的最小分:{}".format(np.min(temp, axis=0))) print("前四名学生,各科成绩波动情况:{}".format(np.std(temp, axis=0))) print("前四名学生,各科成绩的平均分:{}".format(np.mean(temp, axis=0)))输出结果:
前四名学生,各科成绩的最大分:[96 97 72 98 89] 前四名学生,各科成绩的最小分:[55 57 45 76 77] 前四名学生,各科成绩波动情况:[16.25576821 14.92271758 10.40432602 8.0311892 4.32290412] 前四名学生,各科成绩的平均分:[78.5 75.75 62.5 85. 82.25]如果需要统计出某科最高分最低分对应的是哪个同学?
np.argmax(temp, axis=)np.argmin(temp, axis=) print("前四名学生,各科成绩最高分对应的学生下标:{}".format(np.argmax(temp, axis=0)))输出结果:
前四名学生,各科成绩最高分对应的学生下标:[0 2 0 0 1]np.matmul和np.dot的区别:
二者都是矩阵乘法。 np.matmul中禁止矩阵与标量的乘法。 在矢量乘矢量的內积运算中,np.matmul与np.dot没有区别。
创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
Dragon少年 | 文
如果本篇博客有任何错误,请批评指教,不胜感激 !