我正在使用Python 3.7.7。
我想创建一个Numpy数组,其随机值在1到0之间。我发现我可以创建一个所有元素都等于零的数组:
zeros = np.zeros((960, 200, 200, 1))
或等于一个:
ones = np.ones((960, 200, 200, 1))
这些函数返回一个数组,其所有元素都等于。
我想创建一个数组,其元素在随机位置为零或一。
我该怎么办?
答案 0 :(得分:4)
这可以使用numpy以多种方式实现,最直接的是:
size = (960, 200, 200, 1)
np.random.randint(0, 2, size=size)
如果您不希望零和一的均匀分布,则可以使用numpy.random.choice
直接控制它:
size = (960, 200, 200, 1)
proba_0 = 0.8 # resulting array will have 80% of zeros
np.random.choice([0, 1], size=size, p=[proba_0, 1-proba_0])
答案 1 :(得分:1)
您可以从[0,1]中提取数字,并询问它们是否大于阈值:
threshold = 0.5
a = 1*(np.random.rand(960, 200, 200, 1)> threshold)