Это укусило меня несколько раз, и я не могу сказать, является ли это ошибкой или функцией.
nums = np.arange(10)
indx1 = np.array([2,4,6,8])
indx2 = np.array([0,3])
Похоже, я могу индексировать nums
в любом случае
nums[indx1][indx2], nums[indx1[indx2]]
вывод (array([2, 8]), array([2, 8]))
Если я хочу переназначить эти значения, это не сработает
nums[indx1][indx2] = 20
nums
вывод array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Но этоработает, как и ожидалось:
nums[indx1[indx2]] = 20
nums
вывод array([ 0, 1, 20, 3, 4, 5, 6, 7, 20, 9])
Почему я должен вкладывать свои индексные массивы, а не в цепочку их?