Aziiz TEBAA
Aziiz TEBAA

Reputation: 3

Get array with another array indexing with NumPy

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

Answers (4)

David
David

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

eshirvana
eshirvana

Reputation: 24613

Just use it like:

print(arr_2[arr_idx_num_3])

output:

>>> [40 50 70]

Upvotes: 1

One way is:

indices = [i for i, x in enumerate(arr_1) if x == 3]
arr_2[indices]

Upvotes: 0

prnvbn
prnvbn

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

Related Questions