Python数据格式转换:Tensor、List、array

1.List:列表

可以存储不同数据类型,有序、可变、不唯一、列表元素可以是不同数据类型

2.np.array数组

python中没有数组的概念,通过np包导入数组,和列表一样有序、可变、不唯一,但是数组元素必须是相同数据类型,要求输入的数据类型应该是统一的。如果输入数据类型不统一,则会尝试将其转换为统一的数据类型。例如,如果输入包含数字和字符串,则所有元素都将转换为字符串类型。并且同一级别上所有数组必须有相同大小。

运算上区别:

例如:b = np.array([[3,4,'xy'],[1,2,'ds']]) 类型都是'str'

数组支持逐元素操作,列表不行 

 array = np.array([3, 6, 9, 12]) division = array/3  正确

 list = [3, 6, 9, 12] division = list/3 报错

3.Tensor张量

可以在GPU上运行,其他两者不行;

Tensor可以和 List、np.array互相转换;

4.类型转化

1)np.array --> list

b = np.array([[3,4,'xy'],[1,2,'ds']])
l1 = list(b) #创建一个新列表,列表元素是数组
l2 = b.tolist() #创建一个新列表
print(l1) 
print(l2)

out:
[array(['3', '4', 'xy'], dtype='<U11'), array(['1', '2', 'ds'], dtype='<U11')]
[['3', '4', 'xy'], ['1', '2', 'ds']]

2)list -->np.array

array = np.array(list) 要注意数组限制

3)list-->Tensor

tensor = torch.tensor(list,dtype=)

4)np.array-->Tensor

tensor = torch.from_numpy(ndarray) 

5)Tensor --> list

先转numpy,后转list

list = tensor0.numpy().tolist()

6)Tensor --> numpy

ndarray = tensor0.numpy()

*gpu上的tensor不能直接转为numpy

ndarray = tensor0.cpu().numpy()

!!!存储方式小tips

内存中是相同数据类型的数据被存储在一起。列表中的每个元素都有自己的内存地址,而这些地址以指针的形式存储在列表的内存块中。创建一个列表,保存的实际上是这些元素的指针。

而数组每个元素都具有相同的数据类型,因此不需要为每个元素单独存储类型信息;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值