我有一个二维的整数数组,我们称之为“a”。在
我想创建一个包含所有1和0的三维数组“B”,以便:
sum(B[i,j,:])==A[i.j]
,也就是说,B[i,j,:]
中包含A[i,j]
1s
我知道如何使用标准的python索引来实现这一点,但结果证明这是非常缓慢的。在
我正在寻找一种方法来做到这一点,利用功能,可以使纽比快速。在
下面是使用标准索引的方法:
B=np.zeros((X,Y,Z))
indexoptions=range(Z)
for i in xrange(Y):
for j in xrange(X):
replacedindices=np.random.choice(indexoptions,size=A[i,j],replace=False)
B[i,j,[replacedindices]]=1
有人能解释一下我怎样才能更快地做到这一点吗?在
编辑:这里有个例子“A”:
^{pr2}$在这种情况下,X=Y=5,Z>;=5
基本上与@JohnZwinck和@DSM的想法相同,但是使用了一个
shuffle
函数来洗牌给定的轴:输出:
^{pr2}$相关问题 更多 >
编程相关推荐