python教程,ndarray类型和list类型如何互转?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔近期的文章都是基于ndarray
类型的,大家已经发现了:ndarray
就是numpy
对list
类型的再包装。那么,本文主要研究的内容就是:numpy
的ndarray
类型如何做到和基本的list
类型互转。
大家好,这里是苏南大叔的“程序如此灵动”博客,本文记录python
代码中,ndarray
类型和list
类型不得不说的转化故事。测试环境:win10
,python@3.11.0
,numpy@1.24.2
,pandas@1.5.3
。
前文回顾
python
里面的list
类型,就是以往其它编程语言里面,所说的数组类型,这里换了一个名字。类似的还有set
、tuple
、dict
等类型。参考文章:
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
其中,.reshape()
的使用方法,可以参考:
同时,上述测试代码,还可以推断出:作为基础类型的list
,还是可以使用等号判断的。而ndarray
这种非基础类型,是需要使用特殊的numpy.array_equal()
进行判断的。参考文章:
结束语
写了很多python
经验文章了,可以点击下面的链接查看:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。