如何快速创建偏向0的n×n NumPy 0-1矩阵?
高效创建偏向0的0-1 NumPy数组
有两种简洁高效的向量化方案,完全不需要循环:
方法一:使用
np.random.choice指定概率分布
直接通过p参数设置0和1的出现概率,比如让0占80%、1占20%:import numpy as np n = 5 # 替换成你的目标n值 arr = np.random.choice([0, 1], size=(n, n), p=[0.8, 0.2])调整
p里的数值就能灵活改变偏向程度,比如p=[0.9, 0.1]会让0的占比更高。方法二:利用
np.random.rand加阈值判断
先生成0到1之间的随机浮点数数组,再通过阈值筛选出1的位置(阈值越大,1的占比越低,偏向0的效果越明显):import numpy as np n = 5 threshold = 0.2 # 仅20%概率生成1 arr = (np.random.rand(n, n) > threshold).astype(int)这种方法依赖NumPy原生向量化运算,效率和方法一相当,适合快速调整偏向程度。
这两种方案都是NumPy原生优化的操作,性能远优于循环实现,同时代码简洁易读。
内容的提问来源于stack exchange,提问作者Swaymon
相关产品推荐
相关产品推荐

