Numpy科学计算与数据分析:Numpy数组创建与应用入门
Numpy数组创建实战
学习目标
通过本课程的学习,学员将掌握使用Numpy库创建不同类型的数组的方法,包括一维数组、多维数组、全零数组、全一阵列、空数组等。本课程将通过理论讲解与实践操作相结合的方式,帮助学员深入理解Numpy数组的创建过程及其应用场景。
相关知识点
Numpy数组应用
学习内容
1 Numpy数组应用
1.1 Numpy数组的基本概念
Numpy是Python中用于处理数组的一个库,它提供了大量的函数用于数组的创建、操作和数学运算。Numpy数组(ndarray)是Numpy的核心对象,它是一个固定类型的多维数组,其中所有元素必须是相同类型,通常为数字。Numpy数组相比于Python内置的列表,具有更高的效率和更多的功能。
Numpy数组的创建可以通过多种方式实现,包括从Python列表转换、使用特定的函数创建等。Numpy数组支持多种数据类型,如整型、浮点型、复数型等,这些数据类型在创建数组时可以通过dtype参数指定。
1.1.1 Numpy数组的属性
Numpy数组有几个重要的属性,这些属性可以帮助人们更好地理解和操作数组:
- ndim:数组的维度数。
- shape:一个表示数组形状的元组,对于二维数组,shape将返回一个包含行数和列数的元组。
- size:数组中元素的总数。
- dtype:数组中元素的数据类型。
- itemsize:数组中每个元素的字节大小。
- data:包含实际数组元素的缓冲区。
1.1.2 创建Numpy数组
创建Numpy数组最简单的方法是从Python列表转换而来。例如,创建一个一维数组:
import numpy as np# 从Python列表创建一维数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
输出:
[1 2 3 4 5]
<class 'numpy.ndarray'>
1.2 使用Numpy创建一维和多维数组
Numpy提供了多种方法来创建一维和多维数组,这些方法可以根据不同的需求灵活使用。
1.2.1 创建一维数组
一维数组是最简单的Numpy数组形式,可以通过从Python列表转换或使用np.arange函数创建。
import numpy as np
# 从Python列表创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print("从列表创建的一维数组:", arr1)# 使用np.arange创建一维数组
arr2 = np.arange(1, 6)
print("使用np.arange创建的一维数组:", arr2)
1.2.2 创建多维数组
多维数组可以通过嵌套的Python列表或使用np.array函数直接创建。Numpy还提供了np.zeros、np.ones等函数来创建特定形状的多维数组。
import numpy as np
# 从嵌套列表创建二维数组
arr3 = np.array([[1, 2, 3], [4, 5, 6]])
print("从嵌套列表创建的二维数组:\n", arr3)# 使用np.zeros创建全零二维数组
arr4 = np.zeros((3, 4))
print("使用np.zeros创建的全零二维数组:\n", arr4)# 使用np.ones创建全一二维数组
arr5 = np.ones((2, 3))
print("使用np.ones创建的全一二维数组:\n", arr5)
1.3 创建特殊类型的数组
Numpy还提供了一些特殊的函数来创建特定类型的数组,这些数组在实际应用中非常有用。
1.3.1 创建全零数组
全零数组在初始化变量或作为占位符时非常有用。可以使用np.zeros函数创建全零数组。
import numpy as np
# 创建全零一维数组
zero_arr1 = np.zeros(5)
print("全零一维数组:", zero_arr1)# 创建全零二维数组
zero_arr2 = np.zeros((3, 4))
print("全零二维数组:\n", zero_arr2)
1.3.2 创建全一阵列
全一阵列在初始化变量或作为占位符时也非常有用。可以使用np.ones函数创建全一阵列。
import numpy as np
# 创建全一一维数组
one_arr1 = np.ones(5)
print("全一一维数组:", one_arr1)# 创建全一二维数组
one_arr2 = np.ones((3, 4))
print("全一二维数组:\n", one_arr2)
1.3.3 创建空数组
空数组在某些情况下用于初始化化,但不分配具体的值。可以使用numpy.empty()函数创建空数组。numpy.empty()的“空”主要体现在它只是简单地在内存中分配了一块空间来存储指定形状的数组,而不对这块内存中的数据进行初始化,所以数组中的值都是随机的(实际上是内存中原有的值)。
这里创建的数组可能出现值全是1的情况,因为在使用numpy.empty()之前,使用了np.ones()函数创建数组,导致分配给numpy.empty()的内存区域中残留的值恰好都是1。这种情况是由于内存的分配和释放机制造成的,并不代表numpy.empty()创建的数组值总是全为1。实际上,numpy.empty()创建的数组中的值是未定义的,取决于内存的初始状态,可能为任意值。
import numpy as np
# 创建空一维数组
empty_arr1 = np.empty(5)
print("空一维数组:", empty_arr1)# 创建空二维数组
empty_arr2 = np.empty((3, 4))
print("空二维数组:\n", empty_arr2)
如果想看到更类似随机的值,可以重启内核后直接运行创建空数组的代码块,或者更改所创建数组的形状(如np.empty(2)、np.empty(8)、np.empty((4, 4))等),这样可能会改变使用的内存空间从而看到不一样的值。
通过本课程的学习,我们已经掌握了使用Numpy创建不同类型的数组的方法。这些知识将为后续的数组操作和数学运算打下坚实的基础。希望学员在实际应用中能够灵活运用这些技能,提高编程效率。