一、从numpyarray转list
NumPy是Python科学计算的基础包,提供了一种快速、高效的多维数组对象 ndarray ,用于存储同类型的数据。在NumPy中,多维数组ndarray是最重要的数据结构,它是一个由同类型元素组成的矩阵,具备高效的数值计算功能。但是,有时候我们需要将ndarray转换为Python中的list对象,便于进行其他操作或对数据进行处理。
下面给出两种方法实现numpy.ndarray转list:
方法1:使用tolist()
import numpy as np # 定义一个ndarray数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 使用tolist()方法将ndarray数组转为list arr_list = arr.tolist() # 输出list类型及数组内容 print('list类型:', type(arr_list)) print('list内容:', arr_list)
运行结果:
list类型:list内容: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
方法2:使用for循环遍历
import numpy as np # 定义一个ndarray数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 定义空列表,用于存放结果 arr_list = [] # 使用for循环遍历每个元素,将其加入列表中 for item in arr: arr_list.append(list(item)) # 输出list类型及数组内容 print('list类型:', type(arr_list)) print('list内容:', arr_list)
运行结果:
list类型:list内容: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
二、numpy转tensor
在深度学习框架中,常常用到tensor,即张量,是高维度数组在PyTorch、TensorFlow等框架中的实现。与numpy.array相似,tensor也是一个矩阵,但是与 numpy.ndarray 不同的是,tensor可以在 GPU 上进行运算,是深度学习的基础。下面给出numpy.ndarray到tensor的转换实例:
import torch import numpy as np # 定义一个ndarray数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 将ndarray数组转换为tensor arr_tensor = torch.from_numpy(arr) # 输出tensor类型及数组内容 print('tensor类型:', type(arr_tensor)) print('tensor内容:', arr_tensor)
运行结果:
tensor类型:tensor内容: tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.int32)
三、numpy.ndarray是啥
作为Python科学计算的基础包,numpy提供了一种快速、高效的多维数组对象 ndarray ,用于存储同类型的数据。它是Python中常用的一个扩展程序库,除了数组,它也提供了大量的数学算法、傅里叶变换以及矩阵运算等功能。
ndarray的主要属性有:
- ndarray.ndim:表示数组的维度。
- ndarray.shape:表示数组的形状,如一个 2×3 的数组,其 shape 属性为 (2, 3)。
- ndarray.size:表示数组的元素个数。
- ndarray.dtype:表示数组的元素类型。
下面给出一个numpy.ndarray的实例:
import numpy as np # 定义一个ndarray数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 输出数组的维度、形状、元素个数、元素类型 print('数组的维度:', arr.ndim) print('数组的形状:', arr.shape) print('数组的元素个数:', arr.size) print('数组的元素类型:', arr.dtype)
运行结果:
数组的维度: 2 数组的形状: (3, 3) 数组的元素个数: 9 数组的元素类型: int32
四、使用场景
numpy.ndarray的应用场景非常广泛,主要体现在以下几个方面:
- 科学计算和数值分析领域,如数值积分、图像处理、信号处理等。
- 机器学习和深度学习领域中,如图像数据处理、语音识别、自然语言处理等。
- 社交网络、推荐系统等领域的处理。
- 其他科学领域,如地球物理、气象学、经济学等。
由于numpy.ndarray数组具有数值计算速度快、占用空间小、灵活多样的特性,因此在科学计算、数据分析和大规模数据处理等领域得到广泛应用。