I have a Numpy array with size [2000,6].now I have an array with size [1,6] and I want to know which row of the main Numpy array is the same as this [1,6] array. if it exists in the main array, return the index of the row. for example row 1. but I do not want to use for loops because it is really time-consuming. I do not know how I can find a vector in an array and extract its related index. please help me with this issue. Thanks
>Solution :
Assuming you are using NumPy for this, your goal can be obtained by using the numpy.where method.
NumPy Solution
You can ignore this cell as I am just creating a simulated version of your problem:
# Simulate @david data
import numpy as np
target_row = np.array((7, 8, 9, 1, 2, 1))
simulated_array = np.zeros((2000, 6))
# I put the target row in index 3
simulated_array[3] = target_row
# Solution
import numpy as np
target_row = np.array((7, 8, 9, 1, 2, 1))
condition = simulated_array == target_row
where_result = np.where(condition)
# This is required since a row of indices is returned above
target_index = where_result[0]
Python List solution
# Simulate @david array
simulated_list = array.tolist()
target_list = [7, 8, 9, 1, 2, 1]
# Solution
target_list = [7, 8, 9, 1, 2, 1]
target_index = simulated_list.index(target_list)
Resources
numpy.where — https://numpy.org/doc/stable/reference/generated/numpy.where.html