【发布时间】:2014-02-03 05:40:54
【问题描述】:
我有一个名称数组,以及相应的数据数组。从名称数组中,还有一个较小的名称子集:
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 循环的方法?我应该提到,数组本身是从外部文件输入的,实际上有多个数据数组,所以我无法真正改变任何东西。
【问题讨论】:
-
似乎没有人能在文档中找到set routines。 (事实上,没有一个单独的函数链接到它们的列表,而是全部引用
numpy.lib.arraysetopts并让您猜测如何搜索它,这可能无济于事。但是顶部带有导航栏的现代文档应该已经解决了这个问题……)
标签: python arrays indexing boolean