> 文章列表 > 【神经网络】tensorflow实验3--NumPy科学计算库

【神经网络】tensorflow实验3--NumPy科学计算库

【神经网络】tensorflow实验3--NumPy科学计算库

目录

1. 实验目的

2. 实验内容

3. 实验过程

题目一:

① 代码

② 实验结果

题目二:

① 代码

② 实验结果

题目三:

     ​编辑

 ① 代码

② 实验结果

5. 实验小结

① 实验过程中遇到了哪些问题,你是如何解决的?

② 拓展题(选做)


1. 实验目的

①掌握NumPy科学计算库的语法规则

②能够运用NumPy完成多维数组矩阵运算

2. 实验内容

根据要求,编写程序,运用NumPy完成多维数组和矩阵运算

3. 实验过程

题目一:

生成一个[0,1)之间均匀分布的随机数数组,包含1000个元素, 随机种子为612。接收用户输入一个1-100之间的数字。打印随机数组中所有索引值可以被输入整数整除的数字,并打印序号和索引值。序号从1开始,依次加1。(提示:输出时可以使用制表符"\\t",对齐各列)

程序运行示例:

请输入一个1-100之间的整数:50
序号  索引值  随机数
1     0       0.1434716297030787
2     50      0.3228752619106986
3     100     0.39412407684983874
......
20    950     0.4658222822786575

 代码

import numpy as npnp.random.seed(612)array = np.random.rand(1000)num = int(input("请输入一个1-100之间的数字:"))count= 1if num>=1 and num<=100:print("序号   索引值   随机数")for i in range(0, 1000):if i % num == 0:print(count, "    ",i ,"    "  ,array[i])count+=1else:print("您输入的数字大于100")

 实验结果

题目二:

 代码

import numpy as npx = 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 = 0sum2 = 0for 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/sum2def count_b():return average_y-count_w()*average_xif __name__ == '__main__':print('w的值是:'+str(count_w()))print('b的值是:'+str(count_b()))print(average_x)print(average_y)

 实验结果

题目三:

     

 ① 代码

import numpy as npx0 = 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)*yprint('w的矩阵为:',w)print('w的形状为:',w.shape)

 实验结果

5. 实验小结

① 实验过程中遇到了哪些问题,你是如何解决的?

数组不能直接计算,必须把数组转换为矩阵才可以正常计算。

第二个题目输入有错误,没有仔细核对,第三个换用更简短的代码实现

② 拓展题(选做)

请创建一个4×4的随机数组,计算每行每列的最小值,并按照从小到大的顺序输出成4×2的数组。

import numpy as npnp.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)