Utilisez la fonction numpy.ix_
pour découper un bloc de plusieurs tableaux d'un tableau multiple numpy.ndarray
ou torch.Tensor
en Python.
Dans Julia
# Julia
#Faire plusieurs séquences
(i, j, k) = (2, 3, 4)
x = reshape(1:i * j * k, i, j, k)
#Découpez plusieurs séquences avec plusieurs indices
(is, js, ks) = ([2, 1], [1, 3], 2:3)
x[is, js, ks] |> println
Je ne pouvais pas trouver facilement les informations même si j'étudiais comment découper un tableau multiple avec plusieurs indices en Python comme celui-ci, alors prenez note. «numpy.ix_» est ce que vous voulez. Notez que par défaut, NumPy et PyTorch ont l'ordre opposé des dimensions multi-tableaux que le tableau de Julia.
# Python + NumPy
import numpy
#Faire plusieurs séquences
i, j, k = 2, 3, 4
x = (numpy.arange(k * j * i) + 1).reshape(k, j, i)
#Découpez plusieurs séquences avec plusieurs indices
# (En Python, c'est comme un mot réservé, de même_À)
is_, js, ks = numpy.array([2, 1]) - 1, numpy.array([1, 3]) - 1, numpy.arange(2 - 1, 3)
print(x[numpy.ix_(ks, js, is_)])
# Python + PyTorch
import torch
import numpy
#Faire plusieurs séquences
i, j, k = 2, 3, 4
x = (torch.arange(k * j * i) + 1).reshape(k, j, i)
#Découpez plusieurs séquences avec plusieurs indices
# (En Python, c'est comme un mot réservé, de même_À)
is_, js, ks = torch.tensor([2, 1]) - 1, torch.tensor([1, 3]) - 1, torch.arange(2 - 1, 3)
print(x[numpy.ix_(ks, js, is_)])
Recommended Posts