Python np.where等价于多维numpy数组

Python np.where等价于多维numpy数组,python,arrays,numpy,Python,Arrays,Numpy,假设有一个numpy数组作为数组([[5],[1,2],[5,6,7],[5],[5]])。 是否有一个函数,例如np.where,可用于返回所有行索引,其中[5]是行值?例如,在上面的数组中,返回的值应该是[0,3,4],表示[5]行号 请注意,数组中的每一行的长度可能不同 谢谢各位,你们都应该得到最好的答案,但我给第一个打了绿色标记:)如果您检查数组的ndim,您将看到它实际上不是多维数组,而是列表对象的1d数组 您可以使用以下列表来获取出现5的索引: [i[0] for i,v in np

假设有一个numpy数组作为
数组([[5],[1,2],[5,6,7],[5],[5]])
。 是否有一个函数,例如
np.where
,可用于返回所有行索引,其中
[5]
是行值?例如,在上面的数组中,返回的值应该是
[0,3,4]
,表示
[5]
行号

请注意,数组中的每一行的长度可能不同


谢谢各位,你们都应该得到最好的答案,但我给第一个打了绿色标记:)

如果您检查数组的
ndim
,您将看到它实际上不是多维数组,而是列表对象的
1d
数组

您可以使用以下列表来获取出现5的索引:

[i[0] for i,v in np.ndenumerate(a) if 5 in v]
#[0, 2, 3, 4]
或以下列表理解,以获取列表正是
[5]
的索引:

[i[0] for i,v in np.ndenumerate(a) if v == [5]]
#[0, 3, 4]

您可以使用列表理解,如下所示:

[i[0] for i,v in np.ndenumerate(a) if 5 in v]
#[0, 2, 3, 4]
这应该做到:

[i[0] for i,v in np.ndenumerate(ar) if v == [5]]
=> [0, 3, 4]

你确定你想要一个数组吗?你在做什么,最好通过一个可变长度列表的一维数组来解决?在实际问题中,那些
[5]
[?]
表示缺少数据,我希望它们从数据集中删除。一种方法是初始化另一个数组,该数组采用不存在
[?]
的行索引。结构不稳定的原因是一些样本对应于多个类。对不起,机器学习的术语,但这是我唯一能想到的解释这种数组重要性的方法。