但我沒有索引值,我只是在一個不同的數組中有相同的索引值。例如,我有如何從numpy數組中快速獲取特定索引?
a = array([3,4,5,6])
b = array([0,1,0,1])
有一些NumPy
相比能快速瞭解一下這兩個從a
其索引匹配所有1
的在b
索引中提取所有值?我想這導致:
array([4,6])
這可能是值得一提的是我的a
數組是多維的,而我的b
陣列將始終有兩種0
或1
的值。我試着用NumPy
的logical_and
功能,雖然這將返回ValueError
與a
和b
具有不同尺寸:
a = numpy.array([[3,2], [4,5], [6,1]])
b = numpy.array([0, 1, 0])
print numpy.logical_and(a,b)
ValueError: operands could not be broadcast together with shapes (3,2) (3,)
雖然這種方法似乎工作,如果a
是平的。無論哪種方式,返回類型numpy.logical_and()
是一個布爾值,我不想要。有另一種方法嗎?同樣,在上面的第二個例子中,所需的回報將是
array([[4,5]])
很顯然,我可以寫一個簡單的循環來做到這一點,我只是在尋找一些更簡潔。
編輯:
這將引入更多的限制,我還應該提到的是,多維數組a
中的每個元素可以是任意長度,即不匹配其鄰居。
'a [b.astype(bool)]''怎麼樣? – Divakar
我剛試過,謝謝。這很光滑。不幸的是,它不適用於多維'a'情況:( – Anonymous
添加這樣一個多維數組樣例? – Divakar