Python NumPy库的使用与特性详解

数据科学的领域中,数据预处理和清洗占据了相当大的一部分工作量,这些工作往往既繁琐又耗时。因此,Python中的NumPy和Pandas模块在这些过程中显得尤为重要,它们根据不同的使用场景和需求条件被广泛使用。

NumPy简介

NumPy(NP)是NumericalPython的缩写,它主要用于执行数学运算。虽然可以使用普通的数学运算,但在NumPy中进行操作的速度更快,时间复杂度更低,这正是处理海量数据时追求的目标。

在开始使用NumPy之前,需要先导入这个库。以下代码展示了如何导入NumPy模块,并使用别名'np'来简化代码。

import numpy as np

NumPy的核心是'ndarray',即n维数组。它类似于列表数据类型,但存在一些差异。

创建NumPy数组时,如果数组中包含不同数据类型的元素,NumPy会进行类型提升,将所有元素转换为相同的数据类型。

x = np.array([1, 2, 3, 4, 5])

打印变量'x'时,它看起来像一个列表,但如果打印'x'的详细信息,会发现它是一个一维数组,数据类型为'int64'。

NumPy数组具有shape、type()和dtype等属性,分别表示数组的维度、类型和数据类型。

x.shape # 输出: (5,) x.type() # 输出: <class 'numpy.ndarray'> x.dtype # 输出: int64

NumPy提供了多种数据类型,可以通过图像清晰地了解它们之间的差异。

已经了解了一维数组,现在让看看二维数组。通过列表的列表概念,可以创建二维数组。

Y = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])

打印变量'Y'的详细信息,会发现它是一个二维数组,维度为(4,3)。

NumPy在分配数据类型时会自动进行类型提升,以避免在数值计算中丢失精度。

z = np.array([1, 2.5, 3])

在这个例子中,尽管数组'z'中大部分元素是'int64'类型,但由于存在'float64'类型的元素,NumPy将整个数组提升为'float64'类型。

也可以根据需要自定义数组的数据类型。

X = np.array([1, 2.5, 3], dtype='int64')

在这个例子中,尽管输入元素包含'int64'和'float64'类型,但由于明确指定了数据类型为'int64',因此所有元素都被转换为'int64'类型。

使用NumPy模块,可以创建多种特殊类型的数组。

  • np.zeros():创建一个全零的数组。
  • np.ones():创建一个全一的数组。
  • np.eye():创建一个单位矩阵。

这些函数可以根据需要生成特定形状的数组。

要生成随机数组,首先需要导入Python的random模块,然后使用random模块的函数来生成所需顺序的数组。

import random random_array = np.array([random.randint(0, 100) for _ in range(10)])

资源链接

  • - 提供了本文中代码的Notebook,以及其他额外功能的描述。
  • - LinkedIn页面,可以与建立联系。
  • - 提供了NumPy库的详细文档,有助于更好地理解NumPy。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485