欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中l(wèi)ist,ndarray,Tensor間的轉(zhuǎn)換小結(jié)

 更新時間:2024年02月02日 11:30:58   作者:tao355667  
數(shù)據(jù)類型轉(zhuǎn)換是常見的功能,本文主要介紹了python中l(wèi)ist,ndarray,Tensor間的轉(zhuǎn)換小結(jié),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧

一、list,ndarray,Tensor間的轉(zhuǎn)化

廢話不多說,看表格就行

數(shù)據(jù)類型所屬包
listpython
ndarraynumpy
Tensorpytorch
轉(zhuǎn)化類型對應API注意點
list轉(zhuǎn)換為ndarraynumpy.array()
ndarray轉(zhuǎn)換為listndarray對象.tolist()
list轉(zhuǎn)換為Tensortorch.tensor()list中的int類型數(shù)據(jù)轉(zhuǎn)換后會變?yōu)閒olat,若需要保持int,則轉(zhuǎn)換時需要加上類型
Tensor轉(zhuǎn)換為listTensor對象.tolist()
ndarray轉(zhuǎn)換為Tensortorch.from_numpy()torch.tensor()
Tensor(CPU)轉(zhuǎn)換為ndarrayTensor對象.numpy()GPU上的Tensor不能直接轉(zhuǎn)換為numpy,需要間接轉(zhuǎn)換
Tensor(GPU)轉(zhuǎn)換為ndarrayTensor對象.cpu().numpy()GPU上的Tensor不能直接轉(zhuǎn)換為numpy,需要間接轉(zhuǎn)換

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共享同一內(nèi)存。對張量的修改將反映在ndarray中,反之亦然。

ndarray數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)類型

array.astype(np.uint8)  

將array復制,并將數(shù)據(jù)類型強制轉(zhuǎn)化為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轉(zhuǎn)換為ndarray
li=[[1,2,3],[4,5,6],[7,8,9]]
a=np.array(li)  #list轉(zhuǎn)換為ndarray
print(a) 
print(type(a),'\n')

#ndarray轉(zhuǎn)換為list
b=a.tolist()#ndarray轉(zhuǎn)換為list
print(b) 
print(type(b),'\n')

#list轉(zhuǎn)換為Tensor
li=[[1,2,3],[4,5,6],[7,8,9]]
c=torch.tensor(li)  #list轉(zhuǎn)換為Tensor
print(c)
print(type(c),'\n')

#Tensor轉(zhuǎn)換為list
d=c.tolist() #Tensor轉(zhuǎn)換為list
print(d) 
print(type(d),'\n')

#ndarray轉(zhuǎn)換為Tensor
nd=np.arange(0,12).reshape(3,4)
e=torch.from_numpy(nd)  #ndarray轉(zhuǎn)換為Tensor
# e=torch.tensor(nd)    #ndarray轉(zhuǎn)換為Tensor
print(e) 
print(type(e),'\n')

#Tensor轉(zhuǎn)換為ndarray
f=e.numpy()
print(f) 
print(type(f),'\n')

運行結(jié)果

[[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'> 

到此這篇關(guān)于python中l(wèi)ist,ndarray,Tensor間的轉(zhuǎn)化小結(jié)的文章就介紹到這了,更多相關(guān)python list,ndarray,Tensor轉(zhuǎn)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論