我正在尝试使用伯努利分布来生成一个矩阵,其中每个行单元格的概率line_id/total_lines
为1.0
。
那是我的代码:
from scipy.stats import bernoulli
import numpy
img_size = 100
img_number = 100
res = numpy.zeros((img_number+1, 6))
image_files = []
for i in range(1):
image_base = Dt.Data(xd=img_size, yd=img_size)
for p in numpy.arange(0.0, 1.0, 1.0/img_size):
s = bernoulli.rvs(p, size=img_size)
image_base.data[int(p * img_size), ...] = s
if not s.any() == True:
print int(p * img_size), s
if i == 0:
Dv.DataVisualization.plot_data(image_base, 'bin'+str(i))
image_files.append(image_base)
from PIL import Image
def plot_data(data, file_path):
output = Image.fromarray(numpy.uint8(data.data * 255))
output.save(file_path + '.png', 'PNG')
但是,对于生成的每个图像,我都会得到一条线(这不是第一条线),由零完成。这是最奇怪的:
这个:
if not s.any() == True:
print int(p * img_size), s
只打印第一行。但是,我仍然可以在所有图像上看到三行(总是相同的行)被 0 满足。