实验二 Numpy库的运用

Numpy库的运用

目录

Numpy库的运用

一、实验目的和要求

二、实验内容

三、实验步骤

四、实验结果

五、注意事项


一、实验目的和要求

(1)使用Numpy库创建数组对象。

(2)对创建的数组对象进行访问、运算、操作、转置。

(3) 能够熟练使用Numpy创建数组对象,并对对创建的数组对象进行访问、运算、操作、转置。

二、实验内容

(1)创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0;

(2)创建一个代表国际象棋棋盘的8*8数组,其中棋盘的白格用0填充,棋盘黑格用1填充

(3)平面上有100个点,求任意两点间的欧式距离,并将其保存;

提示:使用np.linspace()函数; n=100

For i in range(n)

   X[i] = i

(xi,yi) (xj,yj)

Dist[i][j]**2= (xi-xj)**2 + (yi-yj)**2

三、实验步骤

任务一:

1.导包numpy

2.创建一个10*10且全为0的二维数组

3.ndarray的第一行(索引为0的行)的所有元素设置为1。

   ndarray的最后一列(索引为9的列)的所有元素设置为1。

   将ndarray的第一列(索引为0的列)的所有元素设置为1。

   将ndarray的最后一行(索引为9的行)的所有元素设置为1。

4. 输出修改后的ndarray

源码:

import numpy as np
ndarray= np.zeros((10,10), dtype =int)
ndarray[0,:]=1
ndarray[:,9]=1
ndarray[:,0]=1
ndarray[9,:]=1
print(ndarray)

任务二:

1. 导入NumPy库

2. 创建一个8x8的二维数组(即棋盘),并将所有元素初始化为0

3. 使用两个嵌套的for循环来遍历棋盘的每一个位置(即每一个格子)。对于每个位置,计算其行索引和列索引的和(i + j),然后检查这个和是否是偶数。如果是偶数,就将该位置的值设置为1,表示这是一个黑格

4.输出棋盘

源码:

import numpy as np  
chessboard = np.zeros((8, 8), dtype=int)  
for i in range(8):  
    for j in range(8):  
        if (i + j) % 2 == 0:  
            chessboard[i, j] = 1  
print(chessboard)

任务三:

1. 使用NumPy的linspace函数生成一个包含100个元素的数组,这些元素从0均匀增加到100。然后将这个数组赋值给xy

2. 初始化一个100x100的二维数组dis,所有元素都设置为0,用于保存任意两点之间的距离。

3. 使用两个嵌套的for循环来遍历所有的点对。对于每一对点(i, j),计算它们的欧式距离

4. 输出得到的距离矩阵dis。

源码:

x=y=np.linspace(0,100,100)
dis=np.zeros([100,100])
for i in range(100):
    for j in range(100):
        dis[j,i]=((x[j]-x[i])**2+(y[j]-y[i])**2)**0.5
print(dis)

四、实验结果

任务一:

任务二:

任务三:

五、注意事项

1. 在创建10*10的ndarray对象时,要确保边界元素被正确设置为1,内部元素被正确设置为0。

2. 在创建国际象棋棋盘时,要注意利用行索引和列索引之和的奇偶性来判断白格和黑格。

3. 在计算距离时,要注意循环变量的使用,避免索引越界。

4. 任务三矩阵的索引是[j,i]而不是[i,j],这意味着矩阵dis存储的是距离矩阵的转置。  

5.任务三 由于所有的点都位于同一条直线上,实际上y坐标并没有为距离计算提供任何新的信息。这意味着,尽管使用了x和y两个坐标,但计算出的距离实际上只与x坐标(或y坐标,因为它们是相同的)的差有关。因此,在这种情况下,距离矩阵将是一个对称矩阵,其值仅取决于点对的x坐标(或y坐标)之差。

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您总结一下Numpy数组与矩阵运算实验的内容。 NumpyPython中用于科学计算的一个重要的库,它提供了高性能的多维数组对象以及各种计算和操作这些数组的函数。Numpy数组与矩阵运算实验主要包括以下内容: 1. Numpy数组的创建与索引:可以使用Numpy提供的array()函数创建一维或多维数组,并且可以使用索引和切片来访问数组中的元素。 2. Numpy数组的基本运算:Numpy提供了基本的数组运算,包括加、减、乘、除等,可以对数组进行逐元素的运算。 3. Numpy数组的聚合运算:Numpy提供了一些常用的聚合函数,比如sum()、min()、max()、mean()等,可以对数组中的元素进行聚合运算。 4. Numpy数组的逻辑运算:Numpy提供了逻辑运算符,可用于数组中元素的逻辑判断,如and、or等。 5. 矩阵的创建与运算:Numpy提供了矩阵对象,可使用matrix()函数创建矩阵,矩阵之间的运算包括加、减、乘、转置等。 6. 广播:Numpy提供了广播功能,可以使得不同形状的数组在运算时具有相同的形状。 通过实验练习,可以掌握Numpy数组与矩阵运算的基本操作,如数组创建、索引、运算、聚合、逻辑运算以及矩阵创建、运算、转置等。同时,实验也会涉及到一些高级的Numpy应用,比如随机数生成、线性代数运算、数组的拼接、切分和重塑等,这些内容需要结合实际应用场景进行练习。 总的来说,Numpy数组与矩阵运算实验Python科学计算中非常重要的部分,需要反复练习和实践,才能掌握这些知识点并灵活运用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

噗-噗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值