0% found this document useful (0 votes)
7 views6 pages

From Numpy To Pytorch

The document provides a comprehensive comparison between Numpy and PyTorch, detailing their respective data types, functions for creating arrays, linear algebra operations, and attributes. It includes specific examples of equivalent functions and methods for both libraries, covering aspects such as indexing, shape manipulation, item selection, and random number generation. This serves as a quick reference guide for users transitioning between Numpy and PyTorch.

Uploaded by

Asma Mlayah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

From Numpy To Pytorch

The document provides a comprehensive comparison between Numpy and PyTorch, detailing their respective data types, functions for creating arrays, linear algebra operations, and attributes. It includes specific examples of equivalent functions and methods for both libraries, covering aspects such as indexing, shape manipulation, item selection, and random number generation. This serves as a quick reference guide for users transitioning between Numpy and PyTorch.

Uploaded by

Asma Mlayah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Types

Numpy PyTorch

np.ndarray torch.Tensor

np.float32 torch.float32; torch.float

np.float64 torch.float64; torch.double

np.float16 torch.float16; torch.half

np.int8 torch.int8

np.uint8 torch.uint8

np.int16 torch.int16; torch.short

np.int32 torch.int32; torch.int

np.int64 torch.int64; torch.long

Ones and zeros


Numpy PyTorch

np.empty((2, 3)) torch.empty(2, 3)

np.empty_like(x) torch.empty_like(x)

np.eye torch.eye

np.identity torch.eye

np.ones torch.ones

np.ones_like torch.ones_like

np.zeros torch.zeros

np.zeros_like torch.zeros_like

From existing data


Numpy PyTorch

np.array([[1, 2], [3, 4]]) torch.tensor([[1, 2], [3, 4]])

np.array([3.2, 4.3],
dtype=np.float16) torch.tensor([3.2, 4.3],
np.float16([3.2, 4.3]) dtype=torch.float16)

x.copy() x.clone()

x.astype(np.float32) x.type(torch.float32); x.float()

np.fromfile(file) torch.tensor(torch.Storage(file))

np.frombuffer

np.fromfunction

np.fromiter

np.fromstring

np.load torch.load

np.loadtxt

np.concatenate torch.cat

Numerical ranges
Numpy PyTorch

np.arange(10) torch.arange(10)

np.arange(2, 3, 0.1) torch.arange(2, 3, 0.1)

np.linspace torch.linspace

np.logspace torch.logspace

Linear algebra
Numpy PyTorch

torch.dot # 1D arrays only


np.dot
torch.mm # 2D arrays only
Numpy PyTorch

torch.mv # matrix-vector (2D x 1D)

np.matmul torch.matmul

np.tensordot torch.tensordot

np.einsum torch.einsum

Building matrices
Numpy PyTorch

np.diag torch.diag

np.tril torch.tril

np.triu torch.triu

Attributes
Numpy PyTorch

x.shape x.shape; x.size()

x.strides x.stride()

x.ndim x.dim()

x.data x.data

x.size x.nelement()

x.dtype x.dtype

Indexing
Numpy PyTorch

x[0] x[0]

x[:, 0] x[:, 0]
Numpy PyTorch

x[indices] x[indices]

np.take(x, indices) torch.take(x, torch.LongTensor(indices))

x[x != 0] x[x != 0]

Shape manipulation
Numpy PyTorch

x.reshape x.reshape; x.view

x.resize() x.resize_

x.resize_as_

x = np.arange(6).reshape(3,
2, 1) x = torch.arange(6).reshape(3, 2, 1)
x.transpose(2, 0, 1) # 012 x.permute(2, 0, 1); x.transpose(1,
-> 201 2).transpose(0, 1) # 012 -> 021 -> 201

x.flatten x.view(-1)

x.squeeze() x.squeeze()

x[:, None];
x[:, None]; x.unsqueeze(1)
np.expand_dims(x, 1)

Item selection and manipulation


Numpy PyTorch

np.put

x.put x.put_

x = torch.tensor([1, 2, 3])
x = np.array([1, 2, 3]) x.repeat_interleave(2) # [1, 1, 2, 2, 3, 3]
x.repeat(2) # [1, 1, 2, 2, 3, x.repeat(2) # [1, 2, 3, 1, 2, 3]
3] x.repeat(2).reshape(2, -1).transpose(1,
0).reshape(-1)
# [1, 1, 2, 2, 3, 3]
Numpy PyTorch

np.tile(x, (3, 2)) x.repeat(3, 2)

x = np.array([[0, 1], [2, 3], x = torch.tensor([[0, 1], [2, 3], [4, 5]])
[4, 5]]) idxs = torch.tensor([0, 2])
idxs = np.array([0, 2]) x[idxs, torch.arange(x.shape[1])] # [0, 5]
np.choose(idxs, x) # [0, 5] torch.gather(x, 0, idxs[None, :])[0] # [0, 5]

np.sort sorted, indices = torch.sort(x, [dim])

np.argsort sorted, indices = torch.sort(x, [dim])

np.nonzero torch.nonzero

np.where torch.where

x[::-1] torch.flip(x, [0])

np.unique(x) torch.unique(x)

Calculation
Numpy PyTorch

x.min x.min

x.argmin x.argmin

x.max x.max

x.argmax x.argmax

x.clip x.clamp

x.round x.round

np.floor(x) torch.floor(x); x.floor()

np.ceil(x) torch.ceil(x); x.ceil()

x.trace x.trace

x.sum x.sum

x.sum(axis=0) x.sum(0)

x.cumsum x.cumsum

x.mean x.mean

x.std x.std
Numpy PyTorch

x.prod x.prod

x.cumprod x.cumprod

x.all x.all

x.any x.any

Arithmetic and comparison operations


Numpy PyTorch

np.less x.lt

np.less_equal x.le

np.greater x.gt

np.greater_equal x.ge

np.equal x.eq

np.not_equal x.ne

Random numbers
Numpy PyTorch

np.random.seed torch.manual_seed

np.random.permutation(5) torch.randperm(5)

Numerical operations
Numpy PyTorch

np.sign torch.sign

np.sqrt torch.sqrt

You might also like