Numpy

由於Python的操作符重載功能,計算兩個數組相加可以簡單地寫爲a+b,而np.add(a,b,a)則可以用a+=b來表示。下面是數組的運算符和其對應的ufunc函數的一個列表,注意除號"/"的意義根據是否激活__future__.division有所不同。
y = x1 + x2: add(x1, x2 [, y])
y = x1 - x2: subtract(x1, x2 [, y])
y = x1 * x2: multiply (x1, x2 [, y])
y = x1 / x2: divide (x1, x2 [, y]), 如果兩個數組的元素爲整數,那麼用整數除法
y = x1 / x2: true divide (x1, x2 [, y]), 總是返回精確的商
y = x1 // x2: floor divide (x1, x2 [, y]), 總是對返回值取整
y = -x: negative(x [,y])
y = x1**x2: power(x1, x2 [, y])

y = x1 % x2: remainder(x1, x2 [, y]), mod(x1, x2, [, y])

數組對象支持這些操作符,極大地簡化了算式的編寫,不過要注意如果你的算式很複雜,並且要運算的數組很大的話,會因爲產生大量的中間結果而降低程序的運算效率。例如:假設a b c三個數組採用算式x=a*b+c計算,那麼它相當於:

t = a * b
x = t + c
del t
也就是說需要產生一個數組t保存乘法的計算結果,然後再產生最後的結果數組x。我們可以通過手工將一個算式分解爲x = a*b; x += c,以減少一次內存分配。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章