当前位置:
首页 > Python基础教程 >
-
python中list,ndarray,Tensor间的转换小结
一、list,ndarray,Tensor间的转化
废话不多说,看表格就行
数据类型 | 所属包 |
---|---|
list | python |
ndarray | numpy |
Tensor | pytorch |
转化类型 | 对应API | 注意点 |
---|---|---|
list转换为ndarray | numpy.array() | |
ndarray转换为list | ndarray对象.tolist() | |
list转换为Tensor | torch.tensor() | list中的int类型数据转换后会变为folat,若需要保持int,则转换时需要加上类型 |
Tensor转换为list | Tensor对象.tolist() | |
ndarray转换为Tensor | torch.from_numpy()torch.tensor() | |
Tensor(CPU)转换为ndarray | Tensor对象.numpy() | GPU上的Tensor不能直接转换为numpy,需要间接转换 |
Tensor(GPU)转换为ndarray | Tensor对象.cpu().numpy() | GPU上的Tensor不能直接转换为numpy,需要间接转换 |
ndarray --> PILimage
From PIL import Image
y = Image.fromarray(array)
PILimage --> ndarray
From PIL import Image
image = Image.open(“…..”)
img = np.asarray(image)
Tensor --> ndarray
import numpy as np
yy = np.array(tensor)
ndarray --> Tensor
tensor = torch.from_numpy(ndarray)
tip:返回的张量和ndarray共享同一内存。对张量的修改将反映在ndarray中,反之亦然。
ndarray数据转换数据类型
array.astype(np.uint8)
将array复制,并将数据类型强制转化为int8
ndarray --> List
import numpy as np
n = np.array([[1,2],[3,4],[5,6]])
m = n.tolist()
List --> Tensor
tensor = torch.tensor(list)
二、例程
import numpy as np
import torch
#list转换为ndarray
li=[[1,2,3],[4,5,6],[7,8,9]]
a=np.array(li) #list转换为ndarray
print(a)
print(type(a),'\n')
#ndarray转换为list
b=a.tolist()#ndarray转换为list
print(b)
print(type(b),'\n')
#list转换为Tensor
li=[[1,2,3],[4,5,6],[7,8,9]]
c=torch.tensor(li) #list转换为Tensor
print(c)
print(type(c),'\n')
#Tensor转换为list
d=c.tolist() #Tensor转换为list
print(d)
print(type(d),'\n')
#ndarray转换为Tensor
nd=np.arange(0,12).reshape(3,4)
e=torch.from_numpy(nd) #ndarray转换为Tensor
# e=torch.tensor(nd) #ndarray转换为Tensor
print(e)
print(type(e),'\n')
#Tensor转换为ndarray
f=e.numpy()
print(f)
print(type(f),'\n')
运行结果
[[1 2 3]
[4 5 6]
[7 8 9]]
<class 'numpy.ndarray'>
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
<class 'list'>
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
<class 'torch.Tensor'>
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
<class 'list'>
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]], dtype=torch.int32)
<class 'torch.Tensor'>
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
<class 'numpy.ndarray'>
到此这篇关于python中list,ndarray,Tensor间的转化小结的文章就介绍到这了,更多相关python list,ndarray,Tensor转化内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/m0_63070489/article/details/135984225
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比