我有一个HDF5文件,其中包含使用Python/numpy保存的数组.当我使用HDF5.jl将它们读入Julia时,轴与它们在Python中出现的顺序相反.为了减少在Python和Julia代码库之间移动所涉及的心理体操,当我将数据读入Julia时,我颠倒了轴顺序.我已经编写了自己的函数来执行此操作:
function reversedims(ary::Array)
permutedims(ary, [ ndims(ary):-1:1 ])
end
data = HDF5.read(someh5file, somekey) |> reversedims
Run Code Online (Sandbox Code Playgroud)
这并不理想,因为(1)我总是要输入reversims来使用它; (2)我必须记住每次Array阅读都要这样做.我想知道是否有可能:
在我看来,这就像排列!执行您正在寻找的操作,但它确实执行数组复制。如果你可以用 python 重写 hdf5 文件,numpy.asfortranarray声称返回以列主格式存储的数据,尽管numpy 内部文档似乎表明数据没有改变,只是步幅改变了,所以我不这样做不知道 hdf5 文件输出是否会有所不同
编辑:抱歉,我刚刚看到您已经permutedims在您的函数中使用了。我在 Julia 方面找不到任何其他内容,但我仍然会尝试看看numpy.asfortranarray是否有帮助。