首页 > 解决方案 > 以随机方式生成没有0值的矩阵

问题描述

我试图在区间 [-5,-1] 和 [1,5] 中以随机方式创建一个矩阵。如何创建一个考虑到随机值的区间(无 0 值)的矩阵?

我试图用randintnumpy 和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]

标签: pythonpython-3.xrandom

解决方案


您可以创建一个随机正矩阵并将其逐个元素乘以一个随机符号:

np.random.randint(1,6,(2,3))*np.random.choice([-1,1],(2,3))

请记住,这仅在间隔甚至在 左右时才有效0,例如(-6,6)0排除)。


推荐阅读