如何从包含多个元素的 numpy 索引结果中获取索引?
How to get indices from numpy index result containing multiple elements?
a=np.random.dirichlet(np.ones(3),size=1)
我想使用三个数字,它们总和为 1。但是,我注意到 a[0]
将是:
array([0.24414272, 0.01769199, 0.7381653 ])
已包含三个元素的索引。
有没有办法把它们分成三个索引?
如果这是您唯一想要的,那么这应该可行:
a=np.random.dirichlet(np.ones(3),size=1)[0]
如果您不传递size
,则默认行为是return具有指定元素的一维数组,根据文档字符串功能:
size : int or tuple of ints, optional
Output shape. If the give shape is, e.g., (m, n)
, then m * n * k
[where k
is size of input and sample sequences] samples are drawn. Default is None
, in which case a vector of length k
is returned.
通过传递 size=1
,您明确告诉它制作一个 size
样本的多维数组(因此,1
样本,使外部维度为 1),其中不传递 size
(或传递 size=None
)仍将仅生成一组样本,作为单个一维数组。
简短版本:如果您只是挂掉电话中的 ,size=1
,您就会得到想要的。
a=np.random.dirichlet(np.ones(3),size=1)
我想使用三个数字,它们总和为 1。但是,我注意到 a[0]
将是:
array([0.24414272, 0.01769199, 0.7381653 ])
已包含三个元素的索引。
有没有办法把它们分成三个索引?
如果这是您唯一想要的,那么这应该可行:
a=np.random.dirichlet(np.ones(3),size=1)[0]
如果您不传递size
,则默认行为是return具有指定元素的一维数组,根据文档字符串功能:
size : int or tuple of ints, optional
Output shape. If the give shape is, e.g.,
(m, n)
, thenm * n * k
[wherek
is size of input and sample sequences] samples are drawn. Default isNone
, in which case a vector of lengthk
is returned.
通过传递 size=1
,您明确告诉它制作一个 size
样本的多维数组(因此,1
样本,使外部维度为 1),其中不传递 size
(或传递 size=None
)仍将仅生成一组样本,作为单个一维数组。
简短版本:如果您只是挂掉电话中的 ,size=1
,您就会得到想要的。