我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔近期的文章都是基于ndarray类型的,大家已经发现了:ndarray就是numpylist类型的再包装。那么,本文主要研究的内容就是:numpyndarray类型如何做到和基本的list类型互转。

苏南大叔:python教程,ndarray类型和list类型如何互转? - ndarray转list
python教程,ndarray类型和list类型如何互转?(图2-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,本文记录python代码中,ndarray类型和list类型不得不说的转化故事。测试环境:win10python@3.11.0numpy@1.24.2pandas@1.5.3

前文回顾

python里面的list类型,就是以往其它编程语言里面,所说的数组类型,这里换了一个名字。类似的还有settupledict等类型。参考文章:

list 转 ndarray

ndarray类型定义的时候,就很明显的看到是从list类型强制转化的。

核心代码:

import numpy as np
list_ = np.array([])

可以参考ndarray的定义文章:

也可以使用.asarray()方式,似乎更文雅一点。(其实是画蛇又填足...)

import numpy as np
list_ = np.asarray([])

ndarray 转 list

ndarray直接有个tolist()方法,可以直接获得list对象。

核心代码:

ndarray_.tolist()

测试代码

测试代码如下:

import numpy as np

sn_list_1 = list("苏南大叔")
sn_ndarray_1 = np.array(sn_list_1)      # ['苏' '南' '大' '叔']
sn_list_2 = sn_ndarray_1.tolist()       # ['苏', '南', '大', '叔']
sn_ndarray_2 = np.array([["苏", "南"], ["大", "叔"]]).reshape(-1)  # ['苏' '南' '大' '叔']
sn_list_3 = sn_ndarray_2.tolist()       # ['苏', '南', '大', '叔']

print(sn_ndarray_1)
print(sn_list_2)
print(sn_ndarray_2)
print(sn_list_3)

print(sn_list_1 == sn_list_2)
print(sn_list_1 == sn_list_3)
print(np.array_equal(sn_ndarray_1, sn_ndarray_2))

输出:

['苏' '南' '大' '叔']
['苏', '南', '大', '叔']
['苏' '南' '大' '叔']
['苏', '南', '大', '叔']
True
True
True

苏南大叔:python教程,ndarray类型和list类型如何互转? - ndarray转list测试代码
python教程,ndarray类型和list类型如何互转?(图2-2)

其中,.reshape()的使用方法,可以参考:

同时,上述测试代码,还可以推断出:作为基础类型的list,还是可以使用等号判断的。而ndarray这种非基础类型,是需要使用特殊的numpy.array_equal()进行判断的。参考文章:

结束语

写了很多python经验文章了,可以点击下面的链接查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python