如何将 Python 中的列表转换为 Numpy 数组

如何将 Python 中的列表转换为 Numpy 数组

参考:list to numpy array

在数据科学和机器学习领域,经常需要处理大量的数值数据。PythonNumpy 库是处理这类数据的强大工具,它提供了高效的数组操作功能。本文将详细介绍如何将 Python 中的列表(List)转换为 Numpy 数组(Numpy Array),并通过多个示例代码展示不同的转换方法和操作。

1. Numpy 简介

Numpy(Numerical Python 的缩写)是一个开源的 Python 科学计算库。它支持高性能的多维数组对象和这些数组的操作。Numpy 是科学计算中广泛使用的基础软件包之一,也是几乎所有高级数据分析工具的基石。

2. 为什么要使用 Numpy 数组而不是 Python 列表?

Python 列表提供了一种灵活的数据结构,但它们不适合进行高效的数值计算。相比之下,Numpy 数组在以下方面具有优势:

  • 性能:Numpy 数组在内存中是连续存储的,这使得操作可以利用现代 CPU 的向量化指令,从而获得更快的处理速度。
  • 功能:Numpy 提供了大量的数学函数和操作,可以直接作用于数组,极大地简化了代码。
  • 内存占用:相比于列表,Numpy 数组通常使用更少的内存。

3. 如何将列表转换为 Numpy 数组

将 Python 列表转换为 Numpy 数组是一个简单直接的过程,可以通过 Numpy 的 array() 函数实现。

示例代码 1:基本转换

import numpy as np

# 创建一个简单的列表
list1 = [1, 2, 3, 4, 5]
# 将列表转换为Numpy数组
array1 = np.array(list1)
print(array1)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 2:多维列表转换

import numpy as np

# 创建一个二维列表
list2 = [[1, 2, 3], [4, 5, 6]]
# 将二维列表转换为Numpy二维数组
array2 = np.array(list2)
print(array2)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 3:指定数据类型

import numpy as np

# 创建一个列表
list3 = [1, 2, 3, 4, 5]
# 将列表转换为Numpy数组,同时指定数据类型为float
array3 = np.array(list3, dtype=float)
print(array3)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 4:从列表生成复数数组

import numpy as np

# 创建一个包含复数的列表
list4 = [1+2j, 3+4j, 5+6j]
# 将列表转换为Numpy数组
array4 = np.array(list4)
print(array4)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 5:使用嵌套列表创建三维数组

import numpy as np

# 创建一个三维列表
list5 = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
# 将三维列表转换为Numpy三维数组
array5 = np.array(list5)
print(array5)

Output:

如何将 Python 中的列表转换为 Numpy 数组

4. 数组的属性

转换为 Numpy 数组后,可以通过数组的属性来了解其结构。常用的属性有 ndim(数组的维度)、shape(数组的形状)和 dtype(数组元素的数据类型)。

示例代码 6:检查数组属性

import numpy as np

# 创建一个列表并转换为数组
list6 = [[1, 2, 3], [4, 5, 6]]
array6 = np.array(list6)

# 打印数组的维度
print(array6.ndim)  # 输出维度
# 打印数组的形状
print(array6.shape)  # 输出形状
# 打印数组的数据类型
print(array6.dtype)  # 输出数据类型

Output:

如何将 Python 中的列表转换为 Numpy 数组

5. 数组的操作

Numpy 提供了丰富的数组操作方法,包括数组的重塑(reshape)、切片(slicing)和合并(concatenation)等。

示例代码 7:数组重塑

import numpy as np

# 创建一个一维数组
list7 = [1, 2, 3, 4, 5, 6]
array7 = np.array(list7)
# 重塑数组为2x3形状
reshaped_array7 = array7.reshape(2, 3)
print(reshaped_array7)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 8:数组切片

import numpy as np

# 创建一个一维数组
list8 = [1, 2, 3, 4, 5, 6]
array8 = np.array(list8)
# 使用切片获取数组的一部分
slice_of_array8 = array8[1:4]
print(slice_of_array8)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 9:数组合并

import numpy as np

# 创建两个数组
list9a = [1, 2, 3]
list9b = [4, 5, 6]
array9a = np.array(list9a)
array9b = np.array(list9b)
# 合并两个数组
concatenated_array9 = np.concatenate([array9a, array9b])
print(concatenated_array9)

Output:

如何将 Python 中的列表转换为 Numpy 数组

6. 数组的数学运算

Numpy 数组支持元素级的数学运算,这意味着可以直接在数组上执行加、减、乘、除等操作,而不需要编写循环语句。

示例代码 10:数组加法

import numpy as np

# 创建两个数组
list10a = [1, 2, 3]
list10b = [4, 5, 6]
array10a = np.array(list10a)
array10b = np.array(list10b)
# 数组加法
added_array10 = array10a + array10b
print(added_array10)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 11:数组乘法

import numpy as np

# 创建一个数组
list11 = [1, 2, 3]
array11 = np.array(list11)
# 数组与标量的乘法
multiplied_array11 = array11 * 3
print(multiplied_array11)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 12:数组的广播

import numpy as np

# 创建两个数组,其中一个是一维数组
list12a = [1, 2, 3]
list12b = [[4, 5, 6], [7, 8, 9]]
array12a = np.array(list12a)
array12b = np.array(list12b)
# 利用广播进行数组加法
broadcasted_array12 = array12a + array12b
print(broadcasted_array12)

Output:

如何将 Python 中的列表转换为 Numpy 数组

7. 数组的排序

Numpy 提供了多种排序算法,可以方便地对数组进行排序。

示例代码 13:数组排序

import numpy as np

# 创建一个数组
list13 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
array13 = np.array(list13)
# 对数组进行排序
sorted_array13 = np.sort(array13)
print(sorted_array13)

Output:

如何将 Python 中的列表转换为 Numpy 数组

8. 数组的统计

Numpy 提供了一系列统计函数,可以计算数组的最大值、最小值、平均值、标准差等。

示例代码 14:计算数组的最大值和最小值

import numpy as np

# 创建一个数组
list14 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
array14 = np.array(list14)
# 计算数组的最大值和最小值
max_value14 = np.max(array14)
min_value14 = np.min(array14)
print(min_value14)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 15:计算数组的平均值和标准差

import numpy as np

# 创建一个数组
list15 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
array15 = np.array(list15)
# 计算数组的平均值和标准差
mean_value15 = np.mean(array15)
std_dev15 = np.std(array15)
print(std_dev15)

Output:

如何将 Python 中的列表转换为 Numpy 数组

9. 数组的线性代数运算

Numpy 提供了一系列线性代数函数,可以进行矩阵乘法、求逆、求特征值等操作。

示例代码 16:矩阵乘法

import numpy as np

# 创建两个数组
list16a = [[1, 2], [3, 4]]
list16b = [[5, 6], [7, 8]]
array16a = np.array(list16a)
array16b = np.array(list16b)
# 进行矩阵乘法
product16 = np.dot(array16a, array16b)
print(product16)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 17:求矩阵的逆

import numpy as np

# 创建一个数组
list17 = [[1, 2], [3, 4]]
array17 = np.array(list17)
# 求矩阵的逆
inverse17 = np.linalg.inv(array17)
print(inverse17)

Output:

如何将 Python 中的列表转换为 Numpy 数组

示例代码 18:求矩阵的特征值和特征向量

import numpy as np

# 创建一个数组
list18 = [[1, 2], [3, 4]]
array18 = np.array(list18)
# 求矩阵的特征值和特征向量
eigenvalues18, eigenvectors18 = np.linalg.eig(array18)
print(eigenvalues18, eigenvectors18)

Output:

如何将 Python 中的列表转换为 Numpy 数组

10. 数组的文件操作

Numpy 提供了一系列文件操作函数,可以将数组保存到文件,或从文件中读取数组。

示例代码 19:将数组保存到文件

import numpy as np

# 创建一个数组
list19 = [1, 2, 3, 4, 5]
array19 = np.array(list19)
# 将数组保存到文件
np.save('numpyarray.com.npy', array19)

示例代码 20:从文件中读取数组

import numpy as np

# 从文件中读取数组
array20 = np.load('numpyarray.com.npy')

以上就是关于如何将 Python 列表转换为 Numpy 数组的详细介绍,希望对你有所帮助。在数据处理和科学计算中,Numpy 数组是一个强大的工具,掌握它的使用将对你的工作大有裨益。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程