Verwenden Sie die Funktion numpy.ix_
, um ein Block-Multiple-Array von einem Multiple-Array numpy.ndarray
oder torch.Tensor
in Python zu trennen.
In Julia
# Julia
#Machen Sie mehrere Sequenzen
(i, j, k) = (2, 3, 4)
x = reshape(1:i * j * k, i, j, k)
#Schneiden Sie mehrere Sequenzen mit mehreren Indizes
(is, js, ks) = ([2, 1], [1, 3], 2:3)
x[is, js, ks] |> println
Ich konnte die Informationen nicht leicht finden, selbst wenn ich untersucht habe, wie man in Python ein Array mit mehreren Indizes mit mehreren Indizes aufteilt. numpy.ix_
ist was du willst. Beachten Sie, dass NumPy und PyTorch standardmäßig die entgegengesetzte Reihenfolge der Multi-Array-Dimensionen haben als Julias Array.
# Python + NumPy
import numpy
#Machen Sie mehrere Sequenzen
i, j, k = 2, 3, 4
x = (numpy.arange(k * j * i) + 1).reshape(k, j, i)
#Schneiden Sie mehrere Sequenzen mit mehreren Indizes
# (In Python ist es wie ein reserviertes Wort, so ist es auch_Zu)
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
#Machen Sie mehrere Sequenzen
i, j, k = 2, 3, 4
x = (torch.arange(k * j * i) + 1).reshape(k, j, i)
#Schneiden Sie mehrere Sequenzen mit mehreren Indizes
# (In Python ist es wie ein reserviertes Wort, so ist es auch_Zu)
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