bothon从python中的列表子集索引

bothon从python中的列表子集索引,第1张

概述我有一个名字数组,以及相应的数据数组.从名称数组中,还有一个较小的名称子集:data = np.array([75., 49., 80., 87., 99.]) arr1 = np.array(['Bob', 'Joe', 'Mary', 'Ellen', 'Dick'], dtype='|S5') arr2 = np.array(['Mary', 'Dic

我有一个名字数组,以及相应的数据数组.从名称数组中,还有一个较小的名称子集:

data = np.array([75.,49.,80.,87.,99.])arr1 = np.array(['Bob','Joe','Mary','Ellen','Dick'],dtype='|S5')arr2 = np.array(['Mary',dtype='|S5')

我正在尝试创建一个新的数据数组,仅对应于arr2中出现的名称.这就是我自己能够想到的:

TF = []for i in arr1:     if i in arr2:        TF.append(True)    else:        TF.append(False)new_data = data[TF]

有没有更有效的方法来做这个不涉及for循环?我应该提到数组本身是从外部文件输入的,实际上有多个数据数组,所以我无法真正改变它.最佳答案您可以使用numpy.in1d,它测试一个数组中的每个元素是否也存在于第二个数组中.

演示

>>> new_data = data[np.in1d(arr1,arr2)]>>> new_dataarray([ 80.,99.])

in1d返回一个bool的ndarray,类似于你在原始代码中构造的列表

>>> np.in1d(arr1,arr2)array([False,False,True,True],dtype=bool)
总结

以上是内存溢出为你收集整理的bothon从python中的列表子集索引全部内容,希望文章能够帮你解决bothon从python中的列表子集索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存