Python 如何以50%的几率沿x轴翻转3D数据?

Python 如何以50%的几率沿x轴翻转3D数据?,python,python-2.7,image-processing,computer-vision,Python,Python 2.7,Image Processing,Computer Vision,我读了一篇论文,他们提到 沿x轴翻转数据的几率为50% 给定输入数据为40x40x24。我如何执行上述要求?我正在使用Python2.7尝试下面的代码,但我不确定“50%的几率”的含义 首先,为了从概率p的n元素中进行选择,您可以简单地使用:np.random.rand(n)

我读了一篇论文,他们提到

沿x轴翻转数据的几率为50%

给定输入数据为40x40x24。我如何执行上述要求?我正在使用Python2.7尝试下面的代码,但我不确定“50%的几率”的含义


首先,为了从概率
p
n
元素中进行选择,您可以简单地使用:
np.random.rand(n)
。根据
[0,1)
上的均匀分布生成一个数字,因此
r
小于某个常数
p
(其中
p
位于[0,1])的概率正好是
p
。该概率实际上是,在这种情况下,a=0,b=1是:

F(p) = 0, p<0
       p, 0<=p<=1
       1, p>1

谢谢你的回答。请检查最后一行
AA[:,:,idxs]=np.fliplr(AA[:,:,idxs])
。是A而不是AA吗?另外,你能解释一下
50%几率的含义吗?
AA
应该是
A
-谢谢,修正了这个问题。我还详细阐述了50%几率。附加代码中的前3行只是为了生成一些数据来处理(你已经有了这些数据).啊,我明白了,很抱歉。这个想法是随机选择一个prob为0.5的切片并翻转它。非常感谢
F(p) = 0, p<0
       p, 0<=p<=1
       1, p>1
# generate a 3D array size 3x3x5
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
A = np.tile( np.expand_dims(A, axis=2), (1,1,5) )
# index the 3rd axis with probability 0.5
p = 0.5
idxs = np.random.rand(A.shape[2]) < p
# flip left-right the chosen arrays in the 3rd dimension
A[:,:,idxs] = np.fliplr(A[:,:,idxs])