1
我有兩個陣列a=[1,2,3,4]
和b=[2,3]
。我想知道是否存在基於陣列元素比較構造布爾2D陣列c
(2D矩陣,即2 * 4矩陣)的有效方式,即c[0,0] = true
iff a[0] == b[0]
。基本的方法是遍歷所有a
和b
的元素,但我認爲使用numpy
可能更好。我檢查了numpy
參考,但無法找到一個例程可以完全。如何使用numpy從兩個1D陣列生成布爾2D陣列
感謝
我有兩個陣列a=[1,2,3,4]
和b=[2,3]
。我想知道是否存在基於陣列元素比較構造布爾2D陣列c
(2D矩陣,即2 * 4矩陣)的有效方式,即c[0,0] = true
iff a[0] == b[0]
。基本的方法是遍歷所有a
和b
的元素,但我認爲使用numpy
可能更好。我檢查了numpy
參考,但無法找到一個例程可以完全。如何使用numpy從兩個1D陣列生成布爾2D陣列
感謝
如果我明白問題的正確,可以延長b
與np.newaxis/None
尺寸形成2D
數組,然後對a
進行平等檢查,這將在broadcasting
帶來了量化的解決方案,像這樣 -
b[:,None] == a
採樣運行 -
In [5]: a
Out[5]: array([1, 2, 3, 4])
In [6]: b
Out[6]: array([2, 3])
In [7]: b[:,None] == a
Out[7]:
array([[False, True, False, False],
[False, False, True, False]], dtype=bool)
的代碼很好,我想知道如果我想要一個4 * 2矩陣而不是示例中顯示的2 * 4矩陣,我該怎麼做? – daiyue
@daiyue在這種情況下擴展'a'並與'b'比較:'a [:,None] == b'。 – Divakar