【大数据处理与可视化】一 、大数据分析环境搭建(安装 Anaconda 3 开发环境)
- 实验目的
- 实验内容
- 实验步骤
- 1、创建一个值域范围从10到49的向量。
- 2、创建一个 3x3 并且值从0到8的矩阵。
- 3、创建一个 3x3 的单位矩阵。
- 4、创建一个数组,数组的shape为(5,0),元素都是0。
- 5、创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白格用0填充,棋盘黑格用1填充。
- 6、创建一个二维数组,其中边界值为1,其余值为0。
- 7、平面上有100个点,求任意两点间的欧式距离,并将其保存。
- 8、创建一个长度为10的向量,并将向量中最大值替换为1。
- 9、分别创建一个5x3的矩阵和一个3x2的矩阵,然后使5x3的矩阵乘以3x2的矩阵,并输出结果。
- 实验小结
实验目的
- 使用Numpy库创建数组对象。
- 对创建的数组对象进行访问、运算、操作、转置。
- 能够熟练运用Numpy的通用函数好数组进行数据处理
- 能够熟练运用线性代数模块和随机数模块
实验内容
1、创建一个值域范围从10到49的向量。
2、创建一个 3x3 并且值从0到8的矩阵。
3、创建一个 3x3 的单位矩阵。
4、创建一个数组,数组的shape为(5,0),元素都是0。
5、创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白格用0填充,棋盘黑格用1填充。
6.、创建一个二维数组,其中边界值为1,其余值为0
7、平面上有100个点,求任意两点间的欧式距离,并将其保存;提示: n=100
For i in range(n):
X[i] = i
(xi,yi) (xj,yj)
Dist[i][j]**2= (xi-xj)**2 + (yi-yj)**2
8、创建一个长度为10的向量,并将向量中最大值替换为1
9、分别创建一个5x3的矩阵和一个3x2的矩阵,然后使5x3的矩阵乘以3x2的矩阵,并输出结果。
实验步骤
1、创建一个值域范围从10到49的向量。
思路: 调用numpy库中arange(开始索引,终止索引) 方法进行创建。
代码: data1 = np.arange(10,50)
截图:
2、创建一个 3x3 并且值从0到8的矩阵。
思路: arange(开始索引,终止索引) ,开始索引为0 可以省略不写。结合reshape()方法定义维数。
代码: data2 = np.arange(9).reshape(3,3)
截图:
3、创建一个 3x3 的单位矩阵。
思路: 单位矩阵元素值全为1,调用numpy库中ones(行数,列数)方法。
代码: data3 = np.ones((3,3))
截图:
4、创建一个数组,数组的shape为(5,0),元素都是0。
思路: 矩阵元素值全为0,调用numpy库中zeros(行数,列数)方法。
代码: data4 = np.zeros((5,0))
截图:
5、创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白格用0填充,棋盘黑格用1填充。
思路: 此矩阵每隔一行元素值相同,只需对两行的相邻位置进行赋值,用步长对其他元素赋值。
代码:
data5 = np.arange(64).reshape(8,8)
data5[::2,::2] = data5[1::2,1::2] = 0
data5[::2,1::2] = data5[1::2,::2] = 1
截图:
6、创建一个二维数组,其中边界值为1,其余值为0。
思路: 创建一个二维数组,其中边界值为1,其余值为0。
代码:
arr = np.ones((10,10))
arr[1:-1,1:-1] = 0
arr.astype(np.int32)
截图:
7、平面上有100个点,求任意两点间的欧式距离,并将其保存。
思路: 随机生成二维数组,用欧拉公式计算两点间距离。
代码:
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
dis
截图:
8、创建一个长度为10的向量,并将向量中最大值替换为1。
思路: 在数组中用arr.argmax()找出最大值的索引,进行改值。
代码:
arr = np.array([5,10,9,6,3,5,4,8,6,2])
arr.max()
arr[arr.argmax()] = 1
arr
截图:
9、分别创建一个5x3的矩阵和一个3x2的矩阵,然后使5x3的矩阵乘以3x2的矩阵,并输出结果。
思路: 生成矩阵后用 np.dot()方法进行运算。
代码:
arr1 = np.arange(15).reshape(5,3)
arr2 = np.arange(6).reshape(3,2)
arr = np.dot(arr1,arr2)
arr
截图:
实验小结
通过本次实验,我了解了数组的创建以及相关方法的使用,对数组的索引和切片有了一定的掌握。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。
注意事项:
1、有疑问前,知识学习前,先用搜索。
2、熟读写基础知识,学得会不如学得牢。
3、选择交流平台,如QQ群,网站论坛等。
4、尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。