我正在创建一个包含0和1的numpy二进制数组,如下所示:
import numpy as np
x = np.zeros((10, 10, 10))
x[:4, :4, :4] = 1
x = x.ravel()
np.random.shuffle(x)
x.reshape(10, 10, 10)
现在我要做的是在这个数组中随机取样20个位置,其中值是1,也就是说,我要随机取样20个三维坐标,其中体积元素是打开的
我猜这样做的方法是得到一个所有位置的位置掩码和正值,然后从中采样,但我不知道如何用numpy生成该掩码
Tags:
你可以用
np.where
得到坐标。这将为您提供一个3元组,其中包含位置为1
的索引数组我们可以使用
np.transpose(..)
或zip(..)
来生成3元组,然后使用random.sample(..)
来选择其中的20个位置例如:
相关问题 更多 >
编程相关推荐