【神经网络】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 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)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值