看板 Python 關於我們 聯絡資訊
我因為需要處理一些大量的數字 所以想用numpy來進行進算 可是numpy某種程度來說像天書一樣 囧 就拿它的切片來說好了 語法就非常地奇怪= =| a[1,...,3] a[3,:] a[:,3] 總讓人懷疑為什麼這種奇怪的語法居然可以通過= = 我知道它是省略() 所以 a[3,:] 其實是a[(3,):] 這我還能理解... 但像這個就... a[:,3] 如果寫成a[:(,3)]是語法錯誤 所以那莫名奇妙的語法到底哪裡合法我看不太出來 orz 那...的語法一樣讓人覺得莫名奇妙 撇開莫名奇妙的語法吐曹= = 請問 numpy到底該怎麼玩? 舉個例子,我有一連串的點,這些點構成一條線 像我想取得線段的所有vector,這點還不難,我是這樣寫 def toVector(points): """Convert points into vectors let p1, p2, p3, ..., pn = points the result will be (p2-p1, p3-p2, ..., pn - pn-1) @param points: points of line string to convert @return: list of vector """ a = np.array(points)[:-1] b = np.array(points)[1:] return b - a 可是比較頭痛的部份就來了,像我想計算前後vector之間的inner product 像這個該怎麼算,我就弄不清楚 我有翻他的文件 http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html 可是他的文件寫得一樣很天書 dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m]) 前面的參數ijkm又是怎麼回事 囧??? 我整個弄得一頭霧水 所以想請問一下,這鬼東西到底怎麼入門 orz... -- 哇咧咧 創意投票系統 http://walele.com 易記學 程式設計教學 http://ez2learn.com/ 易記學 程式設計討論區 http://forum.ez2learn.com VICTOR's 個人Blog http://blog.ez2learn.com/ 財報分析王 http://victorlin.serveftp.org/stock/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.227.37 ※ 編輯: StubbornLin 來自: 218.165.227.37 (08/22 18:48)
yungyuc:read slice(); refer to lapack. 08/22 19:49
sbrhsieh:a[1,...,3]=>a.__getitem__((1, Ellipsis, 3)) 08/23 15:50
sbrhsieh:a[3,:]=>a.__getitem__((3, slice(None, None, None))) 08/23 15:51
sbrhsieh:a[:,3]=>a.__getitem__((slice(None, None, None), 3)) 08/23 15:51
sbrhsieh:Python 2.5 docs, 5.3.3 Slicings 08/23 15:53
sbrhsieh:Python 2.5 Language Reference, 5.3.3 Slicings 08/23 15:54