python:array,mat,tolist,list

1.对于二维数据

>>> from numpy import *
>>> a1 = [[1,2,3],[4,5,6]]      #获得一个列表
>>> a1
[[1, 2, 3], [4, 5, 6]]
>>> type(a1)
<class 'list'>

>>> a2 = array(a1)               #列表转数组
>>> a2
array([[1, 2, 3],
       [4, 5, 6]])
>>> type(a2)
<class 'numpy.ndarray'>

>>> a3 = mat(a1)                  #列表转矩阵
>>> type(a3)
<class 'numpy.matrix'>

>>> a4 = a2.tolist()              #数组转列表
>>> a4
[[1, 2, 3], [4, 5, 6]]

>>> a5 = a3.tolist()              #矩阵转列表
>>> a5
[[1, 2, 3], [4, 5, 6]]

>>> a6 = mat(a2)                  #数组转矩阵
>>> a6
matrix([[1, 2, 3],
        [4, 5, 6]])
        
>>> a6 == a3                      #判断矩阵是否相等,放回一个布尔矩阵
matrix([[ True,  True,  True],
        [ True,  True,  True]])
        
>>> a7 = array(a3)                 #判断数组是否相等,返回一个布尔矩阵
>>> a7 == a2
array([[ True,  True,  True],
       [ True,  True,  True]])

>>> a4 == a5                       #判断列表是否相等,返回一个布尔值
True
>>> a5 == a1
True

2.对于一维数据

>>> a1 =[1,2,3,4,5,6]              # 创建一个列表,一个维度
>
>>> a2 = array(a1)                 # 列表转数组 ,结果一个方括号
>>> a2
array([1, 2, 3, 4, 5, 6])
>>> a2.shape
(6,)

>>> a3 = mat(a1)                    #列表转矩阵,结果俩方括号
>>> a3
matrix([[1, 2, 3, 4, 5, 6]])
>>> a3.shape
(1, 6)

>>> a4 = a3.tolist()                 #矩阵转列表,矩阵有两个维度,转列表后也是两个维度
>>> a4
[[1, 2, 3, 4, 5, 6]]                 # 注意!!有不同,两个维度
>>> a1 == a4
False

>>> a8 = a3.tolist()[0]              #矩阵转列表列表 ,取两个维度的第一个维度
>>> a8
[1, 2, 3, 4, 5, 6]                   # 注意!!和a4有不同 ,和a1相同
>>> a1 == a8
True

>>> a5 = a2.tolist()                 # 数组转列表,数组只有一个维度,转列表后还是一个维度
>>> a5
[1, 2, 3, 4, 5, 6]
>>> a5 == a1
True

>>> a6 = mat(a2)                      # 数组转矩阵  
>>> a6
matrix([[1, 2, 3, 4, 5, 6]])
>>> a6 == a3
matrix([[ True,  True,  True,  True,  True,  True]], dtype=bool)

>>> a7 = array(a3)                     # 矩阵转数组 
>>> a7
array([[1, 2, 3, 4, 5, 6]])
>>> a7 == a2
array([[ True,  True,  True,  True,  True,  True]], dtype=bool)
>>> 

3.list()和tolist()的区别

>>> x=np.array([[1,2,3],[4,5,6]])
>>> x
array([[1, 2, 3],
       [4, 5, 6]])

####       写法不一样        #####  
>>> x1=x.tolist()
>>> x1
[[1, 2, 3], [4, 5, 6]]
>>> x2=list(x)
>>> x2
[array([1, 2, 3]), array([4, 5, 6])]

####       转换后都是得到一个数组        #####
>>> type(x1)
<class 'list'>
>>> type(x2)
<class 'list'>

####       元素的数据类型不一样        #####
>>> type(x1[0])
<class 'list'>
>>> type(x2[0])
<class 'numpy.ndarray'>

####       元素的元素的数据类型不一样        #####
>>> type(x1[0][0])
<class 'int'>
>>> type(x2[0][0])
<class 'numpy.int32'>

所以可以看出来,list()的结果是:list of np.array of np.int;
而tolist()的结果是:list of list of int

注(参考文章):

  1. python中的整型(int)和numpy中的整型(np.int, np.int64)类型是不一样的
  2. python中的浮点型(float)和numpy中的浮点型(np.float64)类型一样,但是和np.float32不一样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值