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
Advertisement
Answer
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