我正在使用Python。如何根據另外兩個具有相同長度的向量的值來創建向量的子選擇?基於Python中兩個其他數組的值創建數組的子集
例如,這三個矢量
c1 = np.array([1,9,3,5])
c2 = np.array([2,2,3,2])
c3 = np.array([2,3,2,3])
c2==2
array([ True, True, False, True], dtype=bool)
c3==3
array([False, True, False, True], dtype=bool)
我想要做這樣的事情:
elem = (c2==2 and c3==3)
c1sel = c1[elem]
但第一條語句導致一個錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
在Matlab中,我會用:
elem = find(c2==2 & c3==3);
c1sel = c1(elem);
如何在Python中做到這一點?
謝謝,這工作得很好! – vincentv
據我所見,這不適用於兩個以上的條件。對於三個或更多,我使用mskimm的解決方案。 – vincentv