m[:,0][(m[:,0] == n1) | (m[:,0] == n2)][0,0]
說明:
m = np.matrix([[1,1],
[2,0],
[3,1],
[5,1],
[5,0]])
n1 = 4; n2 = 1;
(m[:,0] == n1)
返回一個布爾矩陣爲n1
的存在
matrix([[False],
[False],
[False],
[False],
[False]], dtype=bool)
(m[:,0] == n2)
返回一個布爾矩陣n2
的存在
matrix([[ True],
[False],
[False],
[False],
[False]], dtype=bool)
既然你說的準確和n1
參數n2
一個將出現在同一時間,|
荷蘭國際集團上述兩個將使指數True
爲任何現有的參數。
(m[:,0] == n1) | (m[:,0] == n2)
matrix([[ True],
[False],
[False],
[False],
[False]], dtype=bool)
通過上述布爾數組索引m[:,0]
,
m[:,0][(m[:,0] == n1) | (m[:,0] == n2)]
matrix([[1]])
我們剛剛得到的第一個元素在它外面
m[:,0][(m[:,0] == n1) | (m[:,0] == n2)][0,0]
1
編輯:
後numpy的1.13 + ,正如@John Zwink所示,你可以壓縮ope口糧最後一個爲np.isin(m[:,0], [n1,n2])[:,0]
,然後只是從中提取出第一個元素np.where(np.isin(m[:,0], [n1,n2])[:,0])[0][0]
還有https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.isin.html,雖然我不知道它實際上產生了多少遍。 – user2357112
我認爲最好的可能是'm [:,0]中的值:如果[n1,n2]中的值:返回值'。但我認爲可能會有一些專門爲此而設的numpy。 @ user2357112共享的numpy.isin看起來並不像。 –