20_NumPy数组ndarray和Python标准列表相互转换

NumPy数组ndarray和Python标准列表类型列表可以相互转换。

  • 将列表类型列表转换为NumPy数组ndarray:numpy.array()
  • 将NumPy数组ndarray转换为列表类型列表:tolist()

尽管为方便起见使用了“转换”一词,但实际上会生成一种新型的对象,而原始对象保持不变。

将列表类型列表转换为NumPy数组ndarray:numpy.array()

生成NumPy数组numpy.ndarray如果将Python列表类型对象传递给numpy.array()的参数,则会基于列表生成ndarray

import numpy as np
l_1d = [0, 1, 2]
arr_1d = np.array(l_1d)
print(arr_1d)
print(arr_1d.dtype)
# [0 1 2]
# int64

生成的ndarray的数据类型dtype是自动从原始列表中确定的,但是也可以通过参数dtype来指定。

arr_1d_f = np.array(l_1d, dtype=float)
print(arr_1d_f)
print(arr_1d_f.dtype)
# [0. 1. 2.]
# float64

这同样适用于二维或更多维的多维数组。

l_2d = [[0, 1, 2], [3, 4, 5]]
arr_2d = np.array(l_2d)
print(arr_2d)
# [[0 1 2]
#  [3 4 5]]

由于标准的Python多维数组只是一个嵌套列表(列表列表),因此列表中元素的数量是否不匹配并不重要,但是如果将其原样传递给numpy.array() ,将生成具有列表类型对象的ndarray,该列表类型对象具有不同数量的元素作为元素。

l_2d_error = [[0, 1, 2], [3, 4]]
arr_2d_error = np.array(l_2d_error)
print(arr_2d_error)
# [list([0, 1, 2]) list([3, 4])]
print(arr_2d_error.dtype)
# object
print(arr_2d_error.shape)
# (2,)

将NumPy数组ndarray转换为列表类型列表:tolist()

NumPy数组ndarray的tolist()方法返回一个列表类型对象。

可以根据原始ndarray的维数获得嵌套列表。可以通过重复索引[n]来访问每个元素。

arr_1d = np.arange(3)
print(arr_1d)
# [0 1 2]
l_1d = arr_1d.tolist()
print(l_1d)
# [0, 1, 2]
arr_2d = np.arange(6).reshape((2, 3))
print(arr_2d)
# [[0 1 2]
#  [3 4 5]]
l_2d = arr_2d.tolist()
print(l_2d)
# [[0, 1, 2], [3, 4, 5]]
arr_3d = np.arange(24).reshape((2, 3, 4))
print(arr_3d)
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]
l_3d = arr_3d.tolist()
print(l_3d)
# [[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]
print(l_3d[0])
# [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
print(l_3d[0][0])
# [0, 1, 2, 3]
print(l_3d[0][0][0])
                                    numpy介绍一、numpy命令介绍1、从txt文本中获取数据2、生成numpy数组3、对ndarray中数据内容的获取4、对ndarray数据的操作5、数组运算6、对数组转换操作
一、numpy命令介绍
numpy函数主要用于科学计算分析,特别适用于矩阵计算,对于大量的有特征向量的类似于excel行列形式的数据特别适用,而且计算速度非常快,方便查看。本章主要介绍numpy常用操作命令。
1、从txt文本中获取数据
先来看下原始的txt文件内容如下:
通过numpy的genfromtxt函数获取txt文件内容	
这里使用的是jupyter notebook编辑工具,此工具比较方便快捷的进
                                    We can use numpy ndarray tolist() function to convert the array to a list. If the array is multi-dimensional, a nested list is returned. For one-dimensional array, a list with the array elements is re...
                                    本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。
在用神经网络进行数字识别时,需要对神经网络进行训练,有时需要我们自己创建训练图片,存储图片的方法有很多,把他以标签和像素的形式存储在csv文件中不失为一个好的方法。这样可以对
                                    ndarray数组的创建方法
本文参考自中国慕课网中北京理工大学教授讲授的《Python数据分析与展示》。
1、从Python中的列表、元祖等类型创建ndarray数组
“x=np.array(list/tuple,dtype=? )”
当np.array()不指定dtype时,numpy将根据数据情况关联一个dtype类型。
import numpy as np
x=np.array([0,1,...
                                    I have some data which is stored as a numpy array with dtype=object, and I would like to extract one column of lists and convert it to a numpy array.  It seems like a simple problem, but the only way ...
python中的二维数组,主要有 list(列表) 和 numpy.ndarray(多维数组) 两种, 两种的区别主要体现在numpy.ndarray 支持更多的索引方式,下面通过代码来看一下两种数据类型...
                                    python中list,array,matrix之间经常相互转换。这些数据结构各有不同的数据处理方式和规则,所以必须对列表数组和矩阵这些数据结构有基本的概念的同时还要熟练地在各种数据结构之间进行转换。
首先是列表化为numpy数组和矩阵,使用numpy中的array()和mat()函数就能轻易转换python中type()函数查看对象的数据类型。
>>> import n...
                                    我们知道python非常适合做机器学习方面的工作,究其原因是因为它对于矩阵,数组操作的便捷性。在python中list列表对象和numpy模块中的ndarray类型也可以很好的发生转换,但是在转换的过程中还是会或多或少地遇到一些特殊的情况,这里做一下简单的介绍。
import numpy as np
class listAndNdarray:
    def __init__(self):
        self.x = x = [[1],[2, 3]]
        self.y = np.arra
                                    numpy 是重要的科学计算工具通过numpy我们可以生成模拟数据,比如随机生成一个数,随机生成一个服从正态分布的随机数1.1 创建数组在进行数学运算之前我们首先要创建数组Numpy中创建数组的方式主要有两种:(1) 创建元素为0或1的数组。(2) 将已有的数据转换数组,比如将列表转换数组Python列表的功能挺多的,但是ndarray对象更强大。两个咱们都会用到,它们都可以看成是矩阵的一种形式,所以有必要了解下它们之间的互相转换操作。关于ndarray对象的基础介绍,大家可以参考博文:
https://blog.csdn.net/wenhao_ir/article/details/124416798关于list(列表)的详细介绍,大家可以参考博文:
https://blog.csdn.net/wenhao_ir/article/details/125400072接下来,先看ndarray