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]