跳至主要内容

Python 数组

包含代码示例的 Python 数组指南。立即学习如何使用 Python NumPy 创建和打印数组!
· 3分钟 阅读

使用 AI 探索

数组是许多编程语言中的基础数据结构,用于在一块连续的内存中存储同一类型元素的集合——也就是说,所有元素按顺序紧密存放,没有间隔。此结构便于高效地访问和操作所存储的元素。

与 C 或 Java 等语言不同,Python 并没有传统意义上的内置数组数据类型。取而代之的是,Python 提供了多种可实现数组功能的替代方案,分别适用于不同的编程需求与场景。

Python 的标准库包含一个 array 模块,它可创建紧凑、类型受限的数组,类似于更静态类型语言中的数组。

然而,在数值和科学计算中,NumPy 库及其 ndarray(n 维数组)已成为 Python 的事实标准。与 Python 标准库提供的基本数组结构相比,NumPy 数组的功能更加广泛。

数组基础

NumPy 是 Python 中进行数值计算的基础包,提供功能强大的数组对象以及一整套用于高效处理这些数组的函数。NumPy 的优势包括:

• 多维性: 不仅支持一维数组。

• 强大的运算: 内置大量数学与统计函数库。

• 向量化: 允许在无需显式循环的情况下对整个数组执行操作,从而提升性能。

• 良好集成: 与 SciPy、Pandas、Matplotlib 等科学计算库无缝协作。

让我们开始使用 Numpy 创建一个数组。首先导入 NumPy,然后使用 array() 函数创建数组。array() 函数以列表作为输入。

import numpy

my_array = numpy.array([0, 1, 2, 3, 4])
print(my_array)

# Expected output: [0 1 2 3 4]

my_array 的类型是 numpy.ndarray。

import numpy

my_array = numpy.array([0, 1, 2, 3, 4])
print(type(my_array))

# Expected output: <class 'numpy.ndarray'>

数组示例

创建数组的示例

在下面的示例中,您将使用 NumPy 的 array() 函数将列表转换为数组。您将创建一个由整数构成的列表 a_list,然后使用 array() 函数将其转换为数组。

import numpy as np

a_list = [1, 2, 3, 4]
print(a_list)

# Expected output: [1, 2, 3, 4]
import numpy as np

a_list = [1, 2, 3, 4]
an_array = np.array(a_list)
print(an_array)

# Expected output: [1 2 3 4]

数组运算示例

在下面的示例中,您将相加两个 numpy 数组。结果是对两个数组逐元素求和。

import numpy as np

array_A = np.array([1, 2, 3])
array_B = np.array([4, 5, 6])

print(array_A + array_B)

# Expected output: [5 7 9]

数组索引示例

您可以使用索引表示法选择数组中的特定索引元素。

import numpy as np

months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[3])

# Expected output: Apr

您也可以使用切片表示法,指定一段索引来切片获取一系列元素。

import numpy as np

months_array = np.array(['Jan', 'Feb', 'March', 'Apr', 'May'])
print(months_array[2:5])

# Expected output: ['March', 'Apr', 'May']

将列表转换为数组的交互式示例

在下面的示例中,您将使用别名 np 导入 numpy。分别从列表 prices 和 earnings 创建数组 prices_array 和 earnings_array。最后,打印这两个数组。

import numpy as np

# Lists
prices = [170.12, 93.29, 55.28, 145.30, 171.81, 59.50, 100.50]
earnings = [9.2, 5.31, 2.41, 5.91, 15.42, 2.51, 6.79]

# NumPy arrays
prices_array = np.array(prices)
earnings_array = np.array(earnings)

# Print the arrays
print(prices_array)
print(earnings_array)

# Expected output:
# [170.12  93.29  55.28 145.3  171.81  59.5  100.5 ]
# [ 9.2   5.31  2.41  5.91 15.42  2.51  6.79]

亲自试一试。

想要进一步了解 Python 中的 NumPy 数组,请观看我们课程 金融中的 Python 入门 中的这一段视频。

以上内容选自 DataCamp 由 Adina Howe 授课的 金融中的 Python 入门 课程。

查看我们的 Python Numpy 数组教程。

常见问题

Python 的 array 模块与 NumPy 数组的主要区别是什么?

主要区别在于功能与使用场景。Python 的 array 模块提供用于创建紧凑、类型受限数组的基础功能,类似于 C 等语言中的数组。另一方面,NumPy 数组提供高级特性,如对多维数组的支持、海量数学函数库,以及通过向量化实现的性能优化。对于数值与科学计算,通常更推荐使用 NumPy。

我可以用 Python 的 array 模块存放字符串或对象类型吗?

不可以,array 模块仅用于存放诸如整数、浮点数等基础数据类型,不支持字符串或对象。对于这些类型的集合,更适合使用 Python 的列表,或元组、字典等其他数据结构。

为何在处理数值数据时应优先使用 NumPy 数组而不是 Python 列表?

NumPy 数组专为数值计算而优化。它们在存储与处理方面更高效,尤其适用于大型数据集。向量化等特性允许对整个数组进行操作而无需显式循环,大幅提升性能并改善代码可读性。

主题