Python 板


LINE

延续之前的问题,想延伸问一个相关的问题 目前看起来若要把A矩阵当中的element以10%的机率设为零的方法是 => A[np.random.normal(A.shape)<0.1] = 0 但是这个方法无法确保每次A当中被设为0的元素的总数目是一样的 假如我想要让 "A当中位置随机,但数量占A当中总数量为10%的元素被设为0"的话该怎麽做最好? 我目前知道的方法为以下: element_idx = list(range(np.prod(A.shape))) np.shuffle(element_idx) ary_idx = np.array(element_idx).reshape(A.shape) A[ary_idx < np.prod(A.shape)*0.1] = 0 请问各位版友有更快或更简洁的方法吗? 感谢大家~ ※ 引述《sma1033 (死马)》之铭言: : ※ 引述《NMOSFET (NMOSFET)》之铭言: : : 各位大大好,小的最近遇到一个问题, : : 假设有个 numpy 二维矩阵 A, : : 我想要让 A 矩阵里的值, : : 以 10% 的机率设为 0, : : 於是写了以下程式码 : : : rows = 10 : : cols = 10 : : prb = np.random.random((rows, cols)) : : mask = prb<0.1 : : for row in range(rows): : : for col in range(cols): : : if(mask[row][col]): : : A[row][col]=0 : : 有没有能够利用numpy的broadcasting来达到同样的效果, : : 而不是用 for 回圈,因为上面这种写法, : : 我只要在if()里面产生随机数判断就好, : : 不用在上面宣告 prb 和 mask 来多此一举, : : 能否请各位大大帮我解惑,感恩!! : 用for回圈在这边根本脱裤子放屁 : 如果是我的话,会用以下作法 : mask = np.random.random((row, col)) : mask[prb<0.1] = 0 : mask[prb>=0.1] = 1 : A = np.multiply(A, mask) : done. : 速度要快就是要用矩阵同时处理多element(可以平行算) : 如果你用for回圈一个一个element依序处理A当中的资料 : 不管你用什麽方法生成random都一样会慢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.86.55
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1529060285.A.DFA.html
1F:→ ThxThx: https://i.imgur.com/jmBjado.png 06/15 19:13
2F:→ ThxThx: 缺点:100 / (机率) 要是整数 06/15 19:15
3F:→ sma1033: 感谢ThxThx解答,如果还有其他方法也欢迎提出讨论 06/15 19:20
4F:→ GeoMeTric: 将 0.1 取代为随机数的 10th percentile,如 06/16 08:57
5F:→ GeoMeTric: A = np.where(prb < np.percentile(prb, 10), 0, A) 06/16 08:57
6F:推 iphone2003: index = np.random.choice(np.prod(A.shape), int(np. 06/16 13:43
7F:→ iphone2003: prod(A.shape) * 0.1) 06/16 13:43
8F:→ iphone2003: A.ravel()[index] = 0 06/16 13:43
9F:→ sma1033: 感谢楼上热心网友的回覆,小弟又多学了好几招~ 06/18 18:47







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP