假設你有一個numpy數組作爲array([[5],[1,2],[5,6,7],[5],[5]])
。 是否有一個函數,如np.where
,可用於返回所有行索引,其中[5]
是行值?例如,在上面的數組中,返回的值應該是[0, 3, 4]
,表示行號爲[5]
。np.其中多維numpy陣列的等價物
請注意,陣列中的每一行可以有不同的長度。
謝謝鄉親們,你們都值得最好的答案,但我給了綠色標誌的第一個:)
假設你有一個numpy數組作爲array([[5],[1,2],[5,6,7],[5],[5]])
。 是否有一個函數,如np.where
,可用於返回所有行索引,其中[5]
是行值?例如,在上面的數組中,返回的值應該是[0, 3, 4]
,表示行號爲[5]
。np.其中多維numpy陣列的等價物
請注意,陣列中的每一行可以有不同的長度。
謝謝鄉親們,你們都值得最好的答案,但我給了綠色標誌的第一個:)
這應該這樣做:
[i[0] for i,v in np.ndenumerate(ar) if v == [5]]
=> [0, 3, 4]
如果您檢查數組的ndim
你會看到,它實際上不是一個多維數組,但是列表對象的數組。
您可以使用以下列表解析獲得其中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]
你確定你甚至想要一個數組嗎?你在做什麼最好的解決辦法是使用一維的變長列表數組? – user2357112
在實際問題中,這些'[5]'是'[?]',表示缺少數據,我希望它們從數據集中刪除。一種方法是初始化另一個數組,該數組使用'[?]'不存在的行索引。結構不穩定的原因是因爲一些樣本對應於多個類別。對於機器學習術語抱歉,但這是我能想到解釋這種數組的重要性的唯一方法。 – Curious