Reputation: 3
arr_1 = np.array([5, 1, 6, 3, 3, 10, 3, 6, 12])
arr_2 = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90])
arr_idx_num_3 = np.where(arr_1 == 3)[0]
print(arr_idx_num_3) ## [3 4 6]
#how to i get this array Numpy with "arr_idx_num_3"
arr_2 = [40 50 70]
Upvotes: 0
Views: 40
Reputation: 467
import numpy as np
arr_1 = np.array([5, 1, 6, 3, 3, 10, 3, 6, 12])
arr_2 = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90])
arr_idx_num_3 = np.nonzero(arr_1==3)
print(arr_2[arr_idx_num_3])
Upvotes: 0
Reputation: 24613
Just use it like:
print(arr_2[arr_idx_num_3])
output:
>>> [40 50 70]
Upvotes: 1
Reputation: 11522
One way is:
indices = [i for i, x in enumerate(arr_1) if x == 3]
arr_2[indices]
Upvotes: 0
Reputation: 1027
A simple for loop should do the trick.
import numpy as np
arr_1 = np.array([5, 1, 6, 3, 3, 10, 3, 6, 12])
arr_2 = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90])
idx_num = 3
arr_idx_num = []
for i in range(len(arr_1)):
if arr_1[i] == idx_num:
arr_idx_num.append(arr_2[i])
Upvotes: 0