5
我有一個名稱數組以及相應的數據數組。從名稱的陣列,也有名字的一個較小的子集:Python中的列表的子集的布爾索引
data = np.array([75., 49., 80., 87., 99.])
arr1 = np.array(['Bob', 'Joe', 'Mary', 'Ellen', 'Dick'], dtype='|S5')
arr2 = np.array(['Mary', 'Dick'], dtype='|S5')
我想使只對應於出現在ARR2名數據的一個新的數組。這是我能夠自己想出的:
TF = []
for i in arr1:
if i in arr2:
TF.append(True)
else:
TF.append(False)
new_data = data[TF]
是否有更有效的方法來做到這一點,不涉及for循環?我應該提到數組本身是從外部文件輸入的,並且實際上有多個數據數組,所以我不能真正改變任何有關數據的內容。
好像沒有人能永遠找到[組例程](http://docs.scipy.org/doc/numpy/reference/routines.set.html)。 (事實上,沒有任何一個單獨的函數鏈接到它們的列表,而是指的是'numpy.lib.arraysetopts',並且讓你猜猜如何搜索它,可能沒有幫助。但現代文檔與navbar在頂部應該已經解決了這個問題......) – abarnert