gpt4 book ai didi

python - 如何按顺序翻转 NumPy 数组中的每个维度?

转载 作者:太空狗 更新时间:2023-10-30 02:41:24 25 4
gpt4 key购买 nike

我在 MATLAB 中遇到过以下函数,它按顺序翻转矩阵中的所有维度:

function X=flipall(X)
for i=1:ndims(X)
X = flipdim(X,i);
end
end

其中 X 的维度为 (M,N,P) = (24,24,100)。如果 X 是 NumPy 数组,我如何在 Python 中执行此操作?

最佳答案

在 MATLAB 中等同于 flipdim 的是 flipnumpy 中。请注意,这仅适用于 1.12.0 版。

因此,它很简单:

import numpy as np

def flipall(X):
Xcopy = X.copy()
for i in range(X.ndim):
Xcopy = np.flip(Xcopy, i)
return Xcopy

因此,您只需这样调用它:

Xflip = flipall(X)

但是,如果您先验知道您只有三个维度,则可以通过简单地执行以下操作对操作进行硬编码:

def flipall(X):
return X[::-1,::-1,::-1]

这会将每个维度一个接一个地翻转。


如果你没有 1.12.0 版本(感谢用户 h​​paulj),你可以使用 slice 做同样的操作:

import numpy as np

def flipall(X):
return X[[slice(None,None,-1) for _ in X.shape]]

关于python - 如何按顺序翻转 NumPy 数组中的每个维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39503759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com