目录
1. 实验目的
2. 实验内容
3. 实验过程
题目一:
① 代码
② 实验结果
题目二:
① 代码
② 实验结果
题目三:
编辑
① 代码
② 实验结果
5. 实验小结
① 实验过程中遇到了哪些问题,你是如何解决的?
② 拓展题(选做)
1. 实验目的
①掌握NumPy科学计算库的语法规则
②能够运用NumPy完成多维数组和矩阵运算
2. 实验内容
根据要求,编写程序,运用NumPy完成多维数组和矩阵运算
3. 实验过程
题目一:
生成一个[0,1)之间均匀分布的随机数数组,包含1000个元素, 随机种子为612。接收用户输入一个1-100之间的数字。打印随机数组中所有索引值可以被输入整数整除的数字,并打印序号和索引值。序号从1开始,依次加1。(提示:输出时可以使用制表符"\t",对齐各列)
程序运行示例:
| 请输入一个1-100之间的整数:50 | 
① 代码
import numpy as np
np.random.seed(612)
array = np.random.rand(1000)
num = int(input("请输入一个1-100之间的数字:"))
count= 1
if num>=1 and num<=100:
    print("序号   索引值   随机数")
    for i in range(0, 1000):
        if i % num == 0:
            print(count, "    ",i ,"    "  ,array[i])
            count+=1
else:
        print("您输入的数字大于100")② 实验结果

题目二:

① 代码
import numpy as np
x = np.array([64.3,99.6,145.45,63.75,135.46,92.85,86.97,144.76,59.3,116.03])
y = np.array([62.55,82.42,132.62,73.31,131.05,86.57,85.49,127.44,55.25,104.84])
average_x =np.average(x)
average_y =np.average(y)
def count_w():
    sum1 = 0
    sum2 = 0
    for i in range(0,10):
        sum1 += (x[i]-average_x)*(y[i]-average_y)
        sum2 += (x[i]-average_x)*(x[i]-average_x)
    return sum1/sum2
def count_b():
    return average_y-count_w()*average_x
if __name__ == '__main__':
    print('w的值是:'+str(count_w()))
    print('b的值是:'+str(count_b()))
print(average_x)
print(average_y)② 实验结果

题目三:
① 代码
import numpy as np
 
x0 = np.ones(10)
x1 = np.array([64.3,99.6,145.45,63.75,135.46,92.85,86.97,144.76,59.3,116.03])
x2 = np.array([2,3,4,2,3,4,2,4,1,3])
y =  np.array([62.55,82.42,132.62,73.31,131.05,86.57,85.49,127.44,55.25,104.84])
x = np.stack((x0,x1,x2),axis = 1)
print('x的矩阵为:',x)
y = y.reshape(10,1)
print('y的矩阵为:',y)
x = np.matrix(x)
y = np.matrix(y)
w = np.linalg.inv(np.transpose(x)*x)*np.transpose(x)*y
print('w的矩阵为:',w)
print('w的形状为:',w.shape)② 实验结果

5. 实验小结
① 实验过程中遇到了哪些问题,你是如何解决的?
数组不能直接计算,必须把数组转换为矩阵才可以正常计算。
第二个题目输入有错误,没有仔细核对,第三个换用更简短的代码实现
② 拓展题(选做)
请创建一个4×4的随机数组,计算每行每列的最小值,并按照从小到大的顺序输出成4×2的数组。
import numpy as np
np.random.seed(612)
a = np.array(np.random.rand(4, 4))
y = np.sort(a, axis=0)      # 按列进行排序
minLine = y[0]              # 切分出每列最小的数值
x = np.sort(a, axis=1)        # 按行进行排序
minRow = x[0:4, 0]           # 切分出每行最小的数值
minx = np.stack((minLine, minRow), axis=1)
minx.resize(8)             # 改变数组形状以方便排序
aimArray = np.sort(minx)
aimArray.resize(4, 2)
if __name__ == '__main__':
    print("原数组:\n",a)
print("生成数组:\n",aimArray)




















