Python 从数组中的一个浮点数中查找值
我有一个值数组,我想找到它在另一个值数组中的位置。例如,如果我有:Python 从数组中的一个浮点数中查找值,python,arrays,Python,Arrays,我有一个值数组,我想找到它在另一个值数组中的位置。例如,如果我有: array1 = [1,2,3,4,5,6] array2 = [2,6,3,4,1,5,.....] 我想找到数组1中的每个元素在数组2中的位置,所以我想让它返回 what_position = [4,0,2,3,5,1] 我试过这样的方法: for i in range(len(array1)): what_position = array1[i].index(array[2]) 但我得到一个错误,说 '
array1 = [1,2,3,4,5,6]
array2 = [2,6,3,4,1,5,.....]
我想找到数组1中的每个元素在数组2中的位置,所以我想让它返回
what_position = [4,0,2,3,5,1]
我试过这样的方法:
for i in range(len(array1)):
what_position = array1[i].index(array[2])
但我得到一个错误,说
'numpy.float64' object has no attribute 'index'
我猜这意味着我不能使用浮动上的索引。是否有其他方法可以解决此问题。列表理解有助于:
positions = [array2.index(item) for item in array1]
具有相同结果的for循环:
positions = []
for item in array1:
positions.append(array2.index(item))
换句话说,您可以对列表而不是单个项目调用
index()
。如果array2
中没有重复元素,则可以使用以下解决方案。使用index()
,它应该比列表理解更快:
np.intersect1d
提供了另一种解决方案:
import numpy as np
array1 = [1,2,3,4,5,6]
array2 = [2,6,3,4,1,5]
np.intersect1d(array1, array2, return_indices=True)[2]
这有二次时间,效率不高
import numpy as np
array1 = [1,2,3,4,5,6]
array2 = [2,6,3,4,1,5]
np.intersect1d(array1, array2, return_indices=True)[2]