← Open Source
wkentaro

pytorch-for-numpy-users

PyTorch for Numpy users. https://pytorch-for-numpy-users.wkentaro.com

TutorialsTool-specific tutorialsHTML
Open on GitHub
Momentum
+0stars in 24 hours0.0%
706
Stars
86
Forks
+0
This week
9
Contributors
Created 2017-05-20 · Updated 2026-07-16 · #14483 today
Top developers
README

PyTorch for Numpy users.

ci gh-pages

PyTorch version of Torch for Numpy users.
We assume you use the latest PyTorch and Numpy.

How to contribute?

git clone https://github.com/wkentaro/pytorch-for-numpy-users.git
cd pytorch-for-numpy-users
vim conversions.yaml
git commit -m "Update conversions.yaml"

./run_tests.py

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) np.float16([3.2, 4.3])

torch.tensor([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

np.dot

torch.dot # 1D arrays only torch.mm # 2D arrays only 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]

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.transpose(2, 0, 1) # 012 -> 201

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

x.flatten

x.view(-1)

x.squeeze()

x.squeeze()

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

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

Item selection and manipulation

Numpy

PyTorch

np.put

x.put

x.put_

x = np.array([1, 2, 3]) x.repeat(2) # [1, 1, 2, 2, 3, 3]

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

[1, 1, 2, 2, 3, 3]

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

x.repeat(3, 2)

x = np.array([[0, 1], [2, 3], [4, 5]]) idxs = np.array([0, 2]) np.choose(idxs, x) # [0, 5]

x = torch.tensor([[0, 1], [2, 3], [4, 5]]) idxs = torch.tensor([0, 2]) x[idxs, torch.arange(x.shape[1])] # [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

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