但我没有索引值,我只是在一个不同的数组中有相同的索引值。例如,我有如何从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