文章目录[隐藏]
1,将scores数组中所有学生的英语成绩减去3分并显示。
2.统计scores数组中每名学生所有科目的平均分并显示。
3,使用随机函数生成[-1,1]之间服从均匀分布的3×4二维数组,并计算所有元素的和。
#思考与练习2 import numpy as np names=np.array(['王薇','肖良英','方绮雯','刘旭阳','钱易铭']) subjects=np.array(['Math','English','Python','Chinese','Art','Database','Physics']) scores=np.array([[70,85,77,90,82,84,89], [60,64,80,75,80,92,90], [90,93,88,87,86,90,91], [80,82,91,88,83,86,80], [88,72,78,90,91,73,80]]) #1 a = scores[: ,subjects =='English']-3 print(a) #2 b = scores.mean(axis = 1) print("每位同学的所有科目的平均分为:") for i in range(0,5): print(names[i],":",b[i]) #3 b = np.random.uniform(-1,1,size = (3,4)) #uniform()函数的生成的随机数范围,两端都取。此题中可取-1与1。 print(b) print(b.sum())
【补充作业题2】
1.选取scores中第2行第2列元素
scores[1,1]
2.选取scores中两个元素,行序号为0,列序号为1的元素;以及行序号为3,列序号为6的元素。
scores[[0,3],[1,6]]
3.选取数组scores中的前3行数据
#方法一 scores[0:3] #或scores[0:3,: ] #方法二 scores[[0,1,2]] #或scores[[0,1,2],: ]
4.选取scores中,列序号为1~4 的列
#方法一: scores[: ,1:5] #或scores[: ,[1,2,3,4]]或scores[[0,1,2,3,4],1:5]或scores[0:5,1:5] #方法二 scores[[0,1,2,3,4]][: ,1:5] #或scores[[0,1,2,3,4]][: ,[1,2,3,4]] #方法三 scores[0:5][: ,1:5] #或scores[: ,][: ,1:5]或scores[: ,: ][: ,1:5]或scores[: ,: ][: ,[1,2,3,4]]
5.选取scores中,行序号为1,2,列序号为0,2,4 的元素
#方法一 scores[1:3,[0,2,4]] #方法二:两层切片,先行后列 scores[1:3][: ,[0,2,4]] #或scores[[1,2]][: ,[0,2,4]] #方法三:两层切片,先列后行 scores[: ,[0,2,4]][1:3] #或scores[: ,[0,2,4]][[1,2]]
6.选取钱易铭的成绩
scores[(names == '钱易铭')] #for循环输出成绩 m = scores[(names == '钱易铭')] print("钱易铭各科目的成绩为:") for i in range(0,7): print(subjects[i],":",m[0,i])
7.选取钱易铭的数学成绩
scores[(names == '钱易铭'),(subjects =='Math')]
8.选取王薇和肖良英的数学和英语成绩
#方法一:双层切片,先行(人名)后列(学科) scores[(names =='王薇')|(names =='肖良英')][: ,(subjects == 'Math')|(subjects =='English')] #方法二:双层切片,先列(学科)后行(人名) scores[: ,(subjects == 'Math')|(subjects =='English')][(names =='王薇')|(names =='肖良英')]
9.选取scores中,大于等于80并且小于90的元素
scores[(scores>=80)&(scores<90)]
10.将第1列元素的值都增加5
#单独显示增加5的那一列 #方法一: scores[: ,0]+5 #方法二:采用函数,subtract()减函数与add()加和函数 np.subtract(scores[: ,0],-5) np.add(scores[: ,0],5) #方法三:构造ones()函数 a = np.ones((1,5))*5 scores[: ,0]+a #或者 b = np.ones((5,1))*5 scores[: ,0]+b.T #用到了数组的转置 #方法四:构造zero()函数 c = np.zeros((5,7)) c[: ,0] = 5 scores+c #显示全部列 #方法一: scores+[5,0,0,0,0,0,0] #方法二:采用ones()函数 m = np.zeros((5,7)) m[: ,0] = 5 scores+m #方法三: n = np.ones((5,7))*5 n[: ,1: ] =0#或者c[: ,1:7]=0 scores+n
原文链接:https://blog.csdn.net/m0_51474486/article/details/123413990?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169244013216777224462869%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169244013216777224462869&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-11-123413990-null-null.268%5Ev1%5Ekoosearch&utm_term=%E7%A7%91%E7%9B%AE%E4%B8%89