2014-02-13 6 views
2

я эту проблему:производное с проблемами numpy.diff

У меня есть массив из 7 элементов:

vector = [array([ 76.27789424]), array([ 76.06870298]), array([ 75.85016864]), array([ 75.71155968]), array([ 75.16982466]), array([ 73.08832948]), array([ 68.59935515])] 

(этот массив является результатом много работы)

Теперь Я хочу вычислить производную с numpy.diff (vector), но я знаю, что тип должен быть массивом numpy.

для этого, я типа:

vector=numpy.array(vector); 

если я печатаю вектор, теперь результат:

[[ 76.27789424] 
[ 76.06870298] 
[ 75.85016864] 
[ 75.71155968] 
[ 75.16982466] 
[ 73.08832948] 
[ 68.59935515]] 

, но если я пытаюсь вычислить производную, результат [].

Можете ли вы мне помочь, пожалуйста?

Большое спасибо!

+0

Не могли бы вы показать, как вы пытаетесь вычислить производные, пожалуйста? – Kamiccolo

+0

der = numpy.diff (вектор) – elviuz

ответ

1

vector список массивов, чтобы получить массив 1-D NumPy использовать список понимание и передать его numpy.array:

>>> vector = numpy.array([x[0] for x in vector]) 
>>> numpy.diff(vector) 
array([-0.20919126, -0.21853434, -0.13860896, -0.54173502, -2.08149518, 
     -4.48897433]) 
1

вектор = numpy.array (вектор);

дает двумерный массив с семью рядами и один столбец

>>> vector.shape 
(7, 1) 

Форма читается как: (length axis 0, length axis 1, length axis 2, ...)

Как вы можете видеть, последняя ось axis 1 и это длина 1.

от docs

numpy.diff (а, п = 1, ось = -1)
...
ось: INT, опционально
ось, вдоль которой разность , по умолчанию - последняя ось.

Невозможно различить одно значение. Поэтому давайте попробуем использовать первую ось, которая имеет длину 7. Так как отсчет осей начинается с нуля, первая ось 0

>>> np.diff(vector, axis=0) 
array([[-0.20919126], 
     [-0.21853434], 
     [-0.13860896], 
     [-0.54173502], 
     [-2.08149518], 
     [-4.48897433]]) 

Обратите внимание, что каждая степень производной будет один элемент, короче, так что новая форма (7-1, 1) которая (6, 1). Давайте проверим, что

>>> np.diff(vector, axis=0).shape 
(6, 1) 
Смежные вопросы