I我有一個陣列shape=(10,2)。我想探測這個陣列是否丟失j=1。通過丟失,我的意思是沒有索引j=1。從 中可以明顯看出I,有帶有 的索引j=2,3,4,5,6,7。
為了記號的目的,在[0,3], i=0,j=3。
import numpy as np
I=np.array([[0, 3],
[1, 2],
[1, 4],
[2, 5],
[3, 4],
[4, 5],
[4, 6],
[5, 7],
[6, 7]])
預期的輸出是
Missing_j=[1]
uj5u.com熱心網友回復:
如果要檢查單個索引,則可以使用 @ArrowRise 注釋中的代碼。
if 1 not in I[:,1]: return '1 is missing'
如果您想獲取所有丟失的索引,那么您可以使用set()它。
您可以將第二列轉換為設定
set1 = set(I[:,1])
并生成包含所有預期索引的集合
max_j = max(I[:,1])
set2 = set( range(1, max_j 1) )
后來你可以做
missing_j = set2 - set1
完整的作業示例 - 我添加[6, 10]了更多缺失的索引。
import numpy as np
I = np.array([
[0, 3],
[1, 2],
[1, 4],
[2, 5],
[3, 4],
[4, 5],
[4, 6],
[5, 7],
[6, 7],
[6, 10],
])
set1 = set( I[:,1] )
max_j = max(I[:,1])
set2 = set( range(1, max_j 1) )
missing_j = sorted( set2 - set1 )
print( missing_j )
結果:
[1, 8, 9]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497813.html
上一篇:重新分配后如何與上一行進行比較
