2014-01-31 3 views
0

У меня есть двумерный массив в numpy и вам нужно применить математическую формулу только к некоторым значениям массива, которые соответствуют определенным критериям. Это можно сделать с помощью цикла for, и если условия, однако, я думаю, используя numpy, где() метод работает быстрее.Применить формулу к определенным значениям массива numpy

Мой код до сих пор это, но он не работает

cond2 = np.where((SPN >= -alpha) & (SPN <= 0)) 
SPN[cond2] = -1*math.cos((SPN[cond2]*math.pi)/(2*alpha)) 

Значения в массиве первоначально должны быть заменены на соответствующее значение после применения формулы.

Любые идеи о том, как сделать эту работу? Я работаю с большими массивами, поэтому мне нужен и эффективный способ сделать это. Благодаря

ответ

2

Попробуйте это:

cond2 = (SPN >= -alpha) & (SPN <= 0) 
SPN[cond2] = -np.cos(SPN[cond2]*np.pi/(2*alpha)) 
+0

Мог бы также назвать 'np.pi', а так все происходит из одной и той же библиотеки. – Hooked

+0

@ Заработал да, я пропустил это ... :) –

+0

Спасибо, человек, он отлично поработал! –

Смежные вопросы