multidimensional-array - 如何在 Julia 的特定轴上对高阶多维数组(或张量)进行切片?

标签 multidimensional-array julia tensor

我正在使用 Julia1.6

这里,X 是一个D 阶多维数组。 如何在 X 的第 d 轴上从 i 切片到 j

这是 D=6d=4 的例子。

X = rand(3,5,6,6,5,6)
Y = X[:,:,:,i:j,:,:]

ij 在上面的例子中被赋予了小于 6 的值。

最佳答案

您可以使用内置函数selectdim

help?> selectdim
search: selectdim

  selectdim(A, d::Integer, i)

  Return a view of all the data of A where the index for dimension d equals i.

  Equivalent to view(A,:,:,...,i,:,:,...) where i is in position d.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> A = [1 2 3 4; 5 6 7 8]
  2×4 Matrix{Int64}:
   1  2  3  4
   5  6  7  8

  julia> selectdim(A, 2, 3)
  2-element view(::Matrix{Int64}, :, 3) with eltype Int64:
   3
   7

这将被使用:

julia> a = rand(10,10,10,10);

julia> selectedaxis = 5
5

julia> indices = 1:2
1:2

julia> selectdim(a,selectedaxis,indices)

请注意,在文档示例中,i 是一个整数,但您也可以使用 i:j 形式的范围。

关于multidimensional-array - 如何在 Julia 的特定轴上对高阶多维数组(或张量)进行切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67545768/

相关文章:

php - 如何将json格式的相同值的数组插入到php mysql的列中

julia - 如何在 Julia 1.0 中进行记忆化或记忆化

python - 将numpy数组图像输入pytorch神经网络

c++ - 从 Julia 调用 C/C++

python - 将 torch 张量从 [10,200,1] reshape 为 [2000,1,1] 时出现问题

numpy - 如何索引/切片未知维度的 PyTorch 张量/numpy 数组的最后一个维度

javascript - 具有不同语言选项的数据对象。 Javascript 实现

c++ - memcpy 创建段错误

java - 在 3D Young Tableau 上调用 Maxify?

arrays - Julia中的Array {Bool}和BitArray有什么区别,它们之间有何关系?