python - 以随机方式生成没有0值的矩阵
问题描述
我试图在区间 [-5,-1] 和 [1,5] 中以随机方式创建一个矩阵。如何创建一个考虑到随机值的区间(无 0 值)的矩阵?
我试图用randint
numpy 和piecewise
. 在第一种情况下,不可能指示 2 个间隔,而在第二种情况下,当值接近 0(大于 -1 且小于 1)时生成的随机数始终相同。
x=np.random.randint(-5,5,(2,3))
np.piecewise(x, [x <= 1, x >=-1 ], [np.random.randint(-5,-1), np.random.randint(1,5)])
我想以这种方式有一个没有 0 值的矩阵:
[-2,-3,-1
1,-2, 3]
解决方案
您可以创建一个随机正矩阵并将其逐个元素乘以一个随机符号:
np.random.randint(1,6,(2,3))*np.random.choice([-1,1],(2,3))
请记住,这仅在间隔甚至在 左右时才有效0
,例如(-6,6)
(0
排除)。
推荐阅读
- java - 地图
得到四舍五入的 int 百分比 - python - 如何在python中自动删除列表项?
- ms-access - 打开报表时从表单输入变量
- tfs - TFS 构建代理不满足 tge 需求
- wpf - 根据 ComboBox 选择使按钮可见
- javascript - 通过 JavaScript 在鼠标悬停时为文本设置动画
- python - 如何使用 re.findall() 在 python 中检查一个地址的更多正则表达式
- amazon-web-services - 避免为每个 ECR 存储库设置策略权限
- paypal - 如何判断用户是否准备好,nonce是否可以提交到服务器?
- extjs - 在选项卡的中心对齐标题