,可以通过以下方式实现:
import numpy as np
def generate_array(num_rows, num_cols):
# 创建一个num_rows行num_cols列的二维数组,初始化为0
array = np.zeros((num_rows, num_cols))
# 生成num_rows-1个不重复的随机数,表示每行的分割点
split_points = np.random.choice(num_cols-1, num_rows-1, replace=False)
split_points.sort()
# 根据分割点,将每行的元素进行赋值
start_index = 0
for i in range(num_rows-1):
end_index = split_points[i] + 1
array[i, start_index:end_index] = 1
start_index = end_index
array[-1, start_index:] = 1
# 对每行的元素进行归一化处理
row_sums = array.sum(axis=1)
array /= row_sums[:, np.newaxis]
return array
# 生成3行4列的数组,行和等于1
array = generate_array(3, 4)
print(array)
领取专属 10元无门槛券
手把手带您无忧上云