文章目录
1. 前天教程与巩固1.1. 第一天1.2. 第二天1.3. 第三天
2. 问题解析2.1. 第一天1. 如何创建Numpy数组2. 如何获取第3个元素3. 如何获取包含第1、2、3行的切片
2.2. 第二天4. 如何将一个有10个元素的一维数组,转变为10行1列的二维数组5. 如何在垂直或者水平上合并两个数组6. 如何筛选出数组arr中大于5的元素
2.3. 第三天7. 对下面创建的数组`arr`的所有元素乘以38. 计算数组`arr`的最大值和最小值9. 计算数组`arr`的标准差和均值
总结
在第四天,我们只需要用一点代码案例来巩固一下以前的内容就OK了。
1. 前天教程与巩固
以下是前面三天的教程链接,以及用于巩固的小问题:
1.1. 第一天
第一天教程
如何创建Numpy数组如何获取第3个元素如何获取包含第1、2、3行的切片(这里不是指索引为1、2、3的行,而是生活习惯上的1、2、3行)
1.2. 第二天
第二天教程
如何将一个有10个元素的一维数组,转变为10行1列的二维数组如何在垂直或者水平上合并两个数组如何筛选出数组arr中大于5的元素
1.3. 第三天
第三天教程
对下面创建的数组arr的所有元素乘以3
arr = np.array([[x for x in range(3)] for _ in range(3)])
计算数组arr的最大值和最小值。计算数组arr的标准差和均值。
2. 问题解析
2.1. 第一天
1. 如何创建Numpy数组
示例代码
import numpy as np
arr = np.array([1, 2, 3])
代码解析 在这段代码中,我们首先导入了numpy包,并使用别名np引用它。然后,我们调用了np.array()函数并传入了一个列表[1, 2, 3],来创建一个numpy数组。
2. 如何获取第3个元素
示例代码
third_element = arr[2]
代码解析 这里我们通过索引访问numpy数组arr中的第三个元素。由于Python中的索引是从0开始的,所以索引2对应于第三个位置的元素。
3. 如何获取包含第1、2、3行的切片
鉴于多数编程语言的索引都是从0开始,与生活习惯有点不同,通常,没有显式声明是索引,就按照从1开始的规则来进行(前些天的教程也是这么写的,但那时候并没有声明,这里为一些感到二义性的读者说声抱歉)。
示例代码
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
slice_1_2_3 = arr_2d[:3, :]
代码解析 在这段代码中,arr_2d是一个3x3的二维数组。我们通过arr_2d[:3, :]取出了前三行的所有数据。仅有冒号:表示选取这一维度上的全部内容。
2.2. 第二天
4. 如何将一个有10个元素的一维数组,转变为10行1列的二维数组
示例代码
arr_1d = np.arange(10)
arr_2d = arr_1d.reshape((10, 1))
代码解析 这里我们使用np.arange(10)创建了一个0到9的一维数组。然后,我们使用reshape((10, 1))将这个一维数组转换成了一个10行1列的二维数组。
5. 如何在垂直或者水平上合并两个数组
示例代码
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr_vstack = np.vstack((arr1, arr2)) # 垂直合并
arr_hstack = np.hstack((arr1, arr2)) # 水平合并
代码解析 在这里,np.vstack()用于垂直堆叠两个数组,而np.hstack()用于水平堆叠两个数组。
6. 如何筛选出数组arr中大于5的元素
示例代码
arr = np.array([1, 6, 3, 7, 9, 2, 5])
filtered_arr = arr[arr > 5]
代码解析 通过arr > 5,我们创建了一个数组,仅包含原数组中大于5的元素。
更深入一点解析 arr > 5,其实就是对arr中所有元素进行了一次比较运算,运算结果是布尔值(真假值),例如1 > 5的结果是False。
当arr的所有元素进行了比较运算后,会得到一个充满了True和False的布尔数组,比如下面的代码。
bool_arr = arr > 5 # bool_arr中的元素只有True和False
如果写arr[bool_arr],也就是把布尔数组传到中括号[]内,numpy就会根据bool_arr的内容对arr进行筛选,True则留下,False则去除。
arr[bool_arr] # 因为bool_arr = arr > 5,这里和直接写arr[arr > 5]一样
2.3. 第三天
7. 对下面创建的数组arr的所有元素乘以3
示例代码
arr = np.array([[x for x in range(3)] for _ in range(3)])
arr_multiplied = arr * 3
代码解析 这段代码演示了Numpy数组的标量乘法运算。arr * 3会将arr中的每个元素都乘以3。
8. 计算数组arr的最大值和最小值
示例代码
arr_max = arr.max()
arr_min = arr.min()
代码解析 max()和min()函数分别找出numpy数组中的最大和最小值。
9. 计算数组arr的标准差和均值
示例代码
arr_std = arr.std()
arr_mean = arr.mean()
代码解析 std()计算的是数组的标准差,即数据分散度的一种度量。mean()计算的是数组的平均值。这两个函数为我们提供了数组分布的统计信息。
总结
本文我们复习巩固了前三天所学习的常用操作,在即将到来的第五天的教程中,我们会结合之前学习的基础知识,使用Numpy实现两个简单的算法:Min-Max归一化、Z-Score标准化,这两种算法可以使我们的数据更加适合进行聚类算法(我们可以通过聚类算法,挖掘出数据中潜在的关系)模型的建立。
参考文章
发表评论