Python np.where等价于多维numpy数组
假设有一个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
数组([[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]
是[?]
表示缺少数据,我希望它们从数据集中删除。一种方法是初始化另一个数组,该数组采用不存在[?]
的行索引。结构不稳定的原因是一些样本对应于多个类。对不起,机器学习的术语,但这是我唯一能想到的解释这种数组重要性的方法。