![cover](/upload/人工智能概论.jpg)
人工智能概论:作业 05
人工智能概论:作业五 numpy实验
第一题:画出指定柱状图
import matplotlib.pyplot as plt
year = [2001, 2002, 2003, 2004, 2005, 2006]
unit = [50, 60, 75, 45, 70, 105]
p1 = plt.bar(year, unit, )
plt.title('Bar Chart')
plt.xlabel('Year')
plt.ylabel('Unit')
plt.bar_label(p1, label_type='edge')
![image-20221101194721662](https://owen-resource.oss-cn-hangzhou.aliyuncs.com/images/image-20221101194721662.png)
第二题
使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素,按行排序,从左到右依次增大
import numpy as np
np.random.seed(64)
arr = np.random.random((10, 10))
print("Max:", np.max(arr), "Min:", np.min(arr))
arr_sorted = np.sort(arr, axis=1)
print(arr_sorted)
![image-20221101195436111](https://owen-resource.oss-cn-hangzhou.aliyuncs.com/images/image-20221101195436111.png)
第三题
使用numpy模块,生成一个ndarray对象,其内容为array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
,并实现分别在行和列上扩充一行和一列,扩充的内容是[7,8,9],分别赋值给变量b和c。请写出完整的相应的python代码。
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
b = np.concatenate((arr, np.array([[7, 8, 9]])))
c = np.concatenate((arr, np.array([[7, 8, 9]]).T), axis=1)
print(b)
print(c)
![image-20221101195911147](https://owen-resource.oss-cn-hangzhou.aliyuncs.com/images/image-20221101195911147.png)
第四题
按照要求,写一段代码完成相应的要求
- 数组ar1表示在【0—19】这20个数字中分成4行5列
- 随机产生一个4行5列的矩阵ar2,随机数的取值为(0,1)
- 取出ar1矩阵中第3行中第1-4之间(都包含)的数
- 将ar1矩阵和ar2的转置进行矩阵相乘,求出结果ar3
- 对ar3的每一行进行排序
- 对ar3进行直方图统计,统计的区间为【0.,30.,50.,80.,100.】,统计该区间的个数
- 对ar1和ar2按照列进行拼接得到ar4
# 数组ar1表示在【0—19】这20个数字中分成4行5列
ar1 = np.arange(0, 20).reshape(4, 5)
print("1:ar1\n", ar1)
# 随机产生一个4行5列的矩阵ar2,随机数的取值为(0,1)
ar2 = np.random.random((4, 5))
print("2:ar2\n", ar2)
# 取出ar1矩阵中第3行中第1-4之间(都包含)的数
print("3:ar1矩阵中第3行中第1-4之间的数\n", ar1[3, 1:5])
# 将ar1矩阵和ar2的转置进行矩阵相乘,求出结果ar3
ar3 = np.dot(ar1, ar2.T)
print("4:ar3\n", ar3)
# 对ar3的每一行进行排序
ar3_sorted = np.sort(ar3, axis=1)
print("5:ar3_sorted\n", ar3_sorted)
# 对ar3进行直方图统计,统计的区间为【0.,30.,50.,80.,100.】,统计该区间的个数
number_list = [np.sum(0 <= ar3), np.sum(30 <= ar3), np.sum(50 <= ar3), np.sum(80 <= ar3), np.sum(100 <= ar3), 0]
plt.bar(['0~30', '30~50', '50~80', '80~100', '100~'], [number_list[i] - number_list[i+1] for i in range(len(number_list)-1)])
# 对ar1和ar2按照进行拼接得到ar4
ar4 = np.concatenate((ar1, ar2))
print("7:ar4\n", ar4)
![image-20221101203015043](https://owen-resource.oss-cn-hangzhou.aliyuncs.com/images/image-20221101203015043.png)
![image-20221101203024203](https://owen-resource.oss-cn-hangzhou.aliyuncs.com/images/image-20221101203024203.png)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Owen
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果