2016-12-03 81 views
1

假設我有一個(400,10)陣列稱爲x和稱爲y一個(400,10)陣列。是否有可能做y中的每一行到x對應的行中,沒有迭代?如果有for循環它將會像polyfit與多維x座標

import numpy as np 

coe = np.zeros((400,3))  
for i in np.arange(y.shape[0]): 
    coe[i,:] = np.polyfit(x[i,:], y[i,:], 2) 

因爲400排在x是完全不同的,我不能只適用np.polyfit具有相同x協調的多維數組y

+0

對不起我的打字錯誤。這是numpy不崎嶇不平 – lelouchkako

回答

0

你試過了解嗎?

coe = [tuple(np.polyfit(x[i,:], y[i,:], 2)) for i in range(400)]

  • 範圍(400)發射的值0至399到i中
  • 對於每個i,則計算用於X [I ,:]對y [I ,:]的polyfit。我相信結果是元組(P,V)
  • 所得列表的元組被分配給COE

在最裏面的水平,這是一個迭代 - 但在Python 3中,這樣的內涵是針對C級性能進行了優化,因此您可能會看到使用for:循環以這種方式進行性能提升。