如何在广播中使用 numpy randint 函数?
How to use numpy randint function with broadcasting?
我最近从这个 link numpy randint manual 中了解到以下对 numpy 的使用。此页面中的最后一个示例显示了此命令,但没有任何解释。
import numpy
x=numpy.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
你能解释一下输入参数是什么意思吗?
In [25]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [26]: x.shape
Out[26]: (2, 4)
2个输入是(4,)和(2,1)形数组:
In [27]: np.array([1, 3, 5, 7]), np.array([[10], [20]])
Out[27]:
(array([1, 3, 5, 7]),
array([[10],
[20]]))
根据broadcasting
规则
(4,) with (2,1) => (1,4) with (2,1) => (2,4)
- 根据需要添加前导尺寸 1 尺寸
- 标量所有大小为 1 的维度以匹配
在这种情况下
In [28]: x
Out[28]:
array([[ 6, 9, 7, 9],
[19, 17, 10, 9]], dtype=uint8)
按列,值都大于等于[1,3,5,7],对吧?
按行,上限是 [10, 20],对吗?
几个示例数组:
In [29]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [30]: x
Out[30]:
array([[ 7, 8, 5, 9],
[ 5, 17, 6, 9]], dtype=uint8)
In [31]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [32]: x
Out[32]:
array([[ 6, 9, 7, 9],
[ 9, 11, 18, 10]], dtype=uint8)
当[1, 3, 5, 7]
和[[10], [20]]
两个数组广播到一个共同的形状时,第一个就变成了
[[1, 3, 5, 7]
[1, 3, 5, 7]]
第二个给出
[[10, 10, 10, 10]]
[20, 20, 20, 20]]
np.random.randint()
生成一个随机生成的整数数组,其形状与这些数组相同,其中每个条目都由两个数组的相应条目绑定。例如,位置(0, 0)的条目至少为1且小于10,位置(0, 1)的条目至少为3且小于10等
我最近从这个 link numpy randint manual 中了解到以下对 numpy 的使用。此页面中的最后一个示例显示了此命令,但没有任何解释。
import numpy
x=numpy.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
你能解释一下输入参数是什么意思吗?
In [25]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [26]: x.shape
Out[26]: (2, 4)
2个输入是(4,)和(2,1)形数组:
In [27]: np.array([1, 3, 5, 7]), np.array([[10], [20]])
Out[27]:
(array([1, 3, 5, 7]),
array([[10],
[20]]))
根据broadcasting
规则
(4,) with (2,1) => (1,4) with (2,1) => (2,4)
- 根据需要添加前导尺寸 1 尺寸
- 标量所有大小为 1 的维度以匹配
在这种情况下
In [28]: x
Out[28]:
array([[ 6, 9, 7, 9],
[19, 17, 10, 9]], dtype=uint8)
按列,值都大于等于[1,3,5,7],对吧?
按行,上限是 [10, 20],对吗?
几个示例数组:
In [29]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [30]: x
Out[30]:
array([[ 7, 8, 5, 9],
[ 5, 17, 6, 9]], dtype=uint8)
In [31]: x=np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8)
In [32]: x
Out[32]:
array([[ 6, 9, 7, 9],
[ 9, 11, 18, 10]], dtype=uint8)
当[1, 3, 5, 7]
和[[10], [20]]
两个数组广播到一个共同的形状时,第一个就变成了
[[1, 3, 5, 7]
[1, 3, 5, 7]]
第二个给出
[[10, 10, 10, 10]]
[20, 20, 20, 20]]
np.random.randint()
生成一个随机生成的整数数组,其形状与这些数组相同,其中每个条目都由两个数组的相应条目绑定。例如,位置(0, 0)的条目至少为1且小于10,位置(0, 1)的条目至少为3且小于10等