2024-05-19 13:08:34 发布
网友
例如,如果我有一个大数组和一个小数组
A = np.array([1,2,3]) B = np.array([3,4,5,6,7,8,2,1])
我可以用np.intersect1d得到相同的值, 但是如果我想得到相同值的索引(在大数组B中),比如这个例子,它应该是[0,6,7],是否有任何命令可以得到它?你知道吗
np.intersect1d
[0,6,7]
您可以使用np.in1d()来获得表示A项出现在B中的位置的布尔数组,然后使用np.where()或np.argwhere()函数可以获得真项的索引:
np.in1d()
A
B
np.where()
np.argwhere()
In [8]: np.where(np.in1d(B, A))[0] Out[8]: array([0, 6, 7])
或如注释np.in1d(B, A).nonzero()[0]所述。然而,你想在这里选择的方式在很大程度上取决于你的程序重置和你想在哪里/如何使用结果。此外,您可以在短数组和大数组中的所有方法上运行基准测试,以查看哪种方法更适合于哪种情况。你知道吗
np.in1d(B, A).nonzero()[0]
您可以使用
np.in1d()
来获得表示A
项出现在B
中的位置的布尔数组,然后使用np.where()
或np.argwhere()
函数可以获得真项的索引:或如注释
np.in1d(B, A).nonzero()[0]
所述。然而,你想在这里选择的方式在很大程度上取决于你的程序重置和你想在哪里/如何使用结果。此外,您可以在短数组和大数组中的所有方法上运行基准测试,以查看哪种方法更适合于哪种情况。你知道吗相关问题 更多 >
编程相关推荐