операции с массивами в numpy и matlab

#python #numpy #matlab #indexing #numpy-ndarray

Вопрос:

У меня есть код Matlab, который я должен преобразовать в python. Есть одна операция, с которой я сейчас борюсь. У меня есть массив Matlab «edof», который имеет размеры 262144 x 24. У меня есть второй массив «dofVector», который имеет размеры 823875 x 1. Выполняемая операция заключается в:

 edof = dofVector(edof);
 

который обновляет мою переменную, и я получаю результирующие размеры переменной «edof» такими же, как и раньше, т. е. 262144 x 24, но значения изменены.

Я пытаюсь преобразовать эту строку кода в numpy, но не смог этого сделать.

 edof = dofVector[edof]
 

Я получаю следующую ошибку.
сообщение об ошибке

Кто-нибудь может мне здесь помочь, пожалуйста?

Я не включаю здесь описание массивов, поскольку это сугубо техническое и специфичное для моей области.

Спасибо!

Ответ №1:

Индексы Numpy основаны на нуле. Индексы MATLAB основаны на одном. Поэтому, если edof MATLAB и Python идентичны до этого шага, вы захотите сделать

 edof = dofVector[edof - 1]