文章目录

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标准化,这两种算法可以使我们的数据更加适合进行聚类算法(我们可以通过聚类算法,挖掘出数据中潜在的关系)模型的建立。

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: