已知一维数组scores存储了某门课程的10位学生的成绩,定义如下,请用numpy库完成以下任务:
import numpy as np
scores = np.array([65,88,98,76,100,78,56,90,89,59])
(1)求该科目的总成绩。
(2)求该科目的平均成绩。
(3)求该科目的最高成绩。
(4)将每个学生的成绩加上5分。
(5)将该一维数组转换成2×5的二维数组。
以下是使用numpy库完成给出任务的代码:
import numpy as np
scores = np.array([65,88,98,76,100,78,56,90,89,59])
# (1) 求该科目的总成绩。
total_score = np.sum(scores)
print("总成绩:", total_score)
# (2) 求该科目的平均成绩。
average_score = np.mean(scores)
print("平均成绩:", average_score)
# (3) 求该科目的最高成绩。
max_score = np.max(scores)
print("最高成绩:", max_score)
# (4) 将每个学生的成绩加上5分。
modified_scores = scores + 5
print("加分后的成绩:", modified_scores)
# (5) 将该一维数组转换成2×5的二维数组。
two_dim_array = np.reshape(scores, (2, 5))
print("转换后的二维数组:")
print(two_dim_array)
输出结果如下:
总成绩: 799
平均成绩: 79.9
最高成绩: 100
加分后的成绩: [ 70 93 103 81 105 83 61 95 94 64]
转换后的二维数组:
[[ 65 88 98 76 100]
[ 78 56 90 89 59]]
可以看到,以上代码成功地完成了所有给出的任务。其中,我们使用了numpy库提供的sum()、mean()、max()、reshape()等函数来实现计算和数组转换的操作。
import numpy as np
b=np.array([[[2,3],[6,8]],[[9,0],[1,8]],[[2,4],[6,1]]])
print('b:\n',b)
print('b的均值:\n',b.mean().round(2))#相当于np.mean(a)
print('b的和:\n',b.sum())#相当于np.sum(a)
print('b的最大值:\n',b.max())
print('b的标准差:\n',b.std().round(2))
print('b的最小值的索引:\n',b.argmin())
print('b中是否包含非0的数:\n',b.any())
print('b中是否全部都是>2的数:\n',np.all(b>2))
print('b中大于6的数的累计和:\n',b[b>6].cumsum())
print('b的第二个一级子数列的和:\n',np.sum(b[1]))#相当于b[1].sum()
print('b的第二个轴上的元素的均值:\n',b.mean(1))
print('b的第一个轴上的元素的和:\n',b.sum(0))
print('b的第一个轴上的元素的累计值:\n',b.cumsum(0))
print('b的第二个轴上的元素的累计积:\n',b.cumprod(1))
print('b的第二个轴上的元素的方差:\n',b.var(1))
print('b的第一个轴上的元素的最小值:\n',b.min(0))
print('b的第一个轴上的元素的最大值的索引:\n',b.argmax(0))
print('b的第二个轴上是否包含>3的数:\n',np.any(b>3,axis=1,keepdims=True))#大于3的数返回True
print('b的第三个轴上是否全是>1的数:\n',np.all(b>1,axis=2))
runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
b:
[[[2 3]
[6 8]]
[[9 0]
[1 8]]
[[2 4]
[6 1]]]
b的均值:
4.17
b的和:
50
b的最大值:
9
b的标准差:
3.0
b的最小值的索引:
5
b中是否包含非0的数:
True
b中是否全部都是>2的数:
False
b中大于6的数的累计和:
[ 8 17 25]
b的第二个一级子数列的和:
18
b的第二个轴上的元素的均值:
[[4. 5.5]
[5. 4. ]
[4. 2.5]]
b的第一个轴上的元素的和:
[[13 7]
[13 17]]
b的第一个轴上的元素的累计值:
[[[ 2 3]
[ 6 8]]
[[11 3]
[ 7 16]]
[[13 7]
[13 17]]]
b的第二个轴上的元素的累计积:
[[[ 2 3]
[12 24]]
[[ 9 0]
[ 9 0]]
[[ 2 4]
[12 4]]]
b的第二个轴上的元素的方差:
[[ 4. 6.25]
[16. 16. ]
[ 4. 2.25]]
b的第一个轴上的元素的最小值:
[[2 0]
[1 1]]
b的第一个轴上的元素的最大值的索引:
[[1 2]
[0 0]]
b的第二个轴上是否包含>3的数:
[[[ True True]]
[[ True True]]
[[ True True]]]
b的第三个轴上是否全是>1的数:
[[ True True]
[False False]
[ True False]]