python中list,ndarray,Tensor间的转换小结

 更新时间:2024年02月02日 11:30:58   作者:tao355667  
数据类型转换是常见的功能,本文主要介绍了python中list,ndarray,Tensor间的转换小结,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

一、list,ndarray,Tensor间的转化

废话不多说,看表格就行

数据类型所属包
listpython
ndarraynumpy
Tensorpytorch
转化类型对应API注意点
list转换为ndarraynumpy.array()
ndarray转换为listndarray对象.tolist()
list转换为Tensortorch.tensor()list中的int类型数据转换后会变为folat,若需要保持int,则转换时需要加上类型
Tensor转换为listTensor对象.tolist()
ndarray转换为Tensortorch.from_numpy()torch.tensor()
Tensor(CPU)转换为ndarrayTensor对象.numpy()GPU上的Tensor不能直接转换为numpy,需要间接转换
Tensor(GPU)转换为ndarrayTensor对象.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转化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+PyQt5开发一个智能键盘模拟输入器(附整体源码)

    Python+PyQt5开发一个智能键盘模拟输入器(附整体源码)

    在当今数字化办公时代,自动化工具已经成为提高工作效率的重要利器,今天我要向大家介绍一款基于PyQt5和pynput库开发的智能键盘模拟输入器,感兴趣的小伙伴可以了解下
    2025-10-10
  • Django框架使用内置方法实现登录功能详解

    Django框架使用内置方法实现登录功能详解

    这篇文章主要介绍了Django框架使用内置方法实现登录功能,结合实例形式详细分析了Django框架内置方法实现登录功能的相关操作技巧与使用注意事项,需要的朋友可以参考下
    2019-06-06
  • tensorflow 中对数组元素的操作方法

    tensorflow 中对数组元素的操作方法

    今天小编就为大家分享一篇tensorflow 中对数组元素的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python实现一行输入多个值和一行输出多个值的例子

    python实现一行输入多个值和一行输出多个值的例子

    今天小编就为大家分享一篇python实现一行输入多个值和一行输出多个值的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 查看jupyter notebook每个单元格运行时间实例

    查看jupyter notebook每个单元格运行时间实例

    这篇文章主要介绍了查看jupyter notebook每个单元格运行时间实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python3中calendar返回某一时间点实例讲解

    python3中calendar返回某一时间点实例讲解

    在本篇内容里小编给大家整理了关于python3中calendar返回某一时间点实例讲解内容,有兴趣的朋友们可以参考学习下。
    2020-11-11
  • Django的URLconf中使用缺省视图参数的方法

    Django的URLconf中使用缺省视图参数的方法

    这篇文章主要介绍了Django的URLconf中使用缺省视图参数的方法,Django是最著名的Python的web开发框架,需要的朋友可以参考下
    2015-07-07
  • Pycharm使用Gitee解读

    Pycharm使用Gitee解读

    这篇文章主要介绍了Pycharm使用Gitee解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 一起来看看python的装饰器代码

    一起来看看python的装饰器代码

    这篇文章主要为大家详细介绍了python装饰器代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Miniconda 安装图形界面的方法实现

    Miniconda 安装图形界面的方法实现

    本文主要介绍了Miniconda 安装图形界面的方法实现,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05

最新评论