用于執(zhí)行算術(shù)運算(如add()
,subtract()
,multiply()
和divide()
)的輸入數(shù)組必須具有相同的形狀或符合數(shù)組廣播規(guī)則。
import numpy as np
a = np.arange(9, dtype = np.float_).reshape(3,3)
print '第一個數(shù)組:'
print a
print '\n'
print '第二個數(shù)組:'
b = np.array([10,10,10])
print b
print '\n'
print '兩個數(shù)組相加:'
print np.add(a,b)
print '\n'
print '兩個數(shù)組相減:'
print np.subtract(a,b)
print '\n'
print '兩個數(shù)組相乘:'
print np.multiply(a,b)
print '\n'
print '兩個數(shù)組相除:'
print np.divide(a,b)
輸出如下:
第一個數(shù)組:
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]
第二個數(shù)組:
[10 10 10]
兩個數(shù)組相加:
[[ 10. 11. 12.]
[ 13. 14. 15.]
[ 16. 17. 18.]]
兩個數(shù)組相減:
[[-10. -9. -8.]
[ -7. -6. -5.]
[ -4. -3. -2.]]
兩個數(shù)組相乘:
[[ 0. 10. 20.]
[ 30. 40. 50.]
[ 60. 70. 80.]]
兩個數(shù)組相除:
[[ 0. 0.1 0.2]
[ 0.3 0.4 0.5]
[ 0.6 0.7 0.8]]
讓我們現(xiàn)在來討論 NumPy 中提供的一些其他重要的算術(shù)函數(shù)。
numpy.reciprocal()
此函數(shù)返回參數(shù)逐元素的倒數(shù),。 由于 Python 處理整數(shù)除法的方式,對于絕對值大于 1 的整數(shù)元素,結(jié)果始終為 0, 對于整數(shù) 0,則發(fā)出溢出警告。
import numpy as np
a = np.array([0.25, 1.33, 1, 0, 100])
print '我們的數(shù)組是:'
print a
print '\n'
print '調(diào)用 reciprocal 函數(shù):'
print np.reciprocal(a)
print '\n'
b = np.array([100], dtype = int)
print '第二個數(shù)組:'
print b
print '\n'
print '調(diào)用 reciprocal 函數(shù):'
print np.reciprocal(b)
輸出如下:
我們的數(shù)組是:
[ 0.25 1.33 1. 0. 100. ]
調(diào)用 reciprocal 函數(shù):
main.py:9: RuntimeWarning: divide by zero encountered in reciprocal
print np.reciprocal(a)
[ 4. 0.7518797 1. inf 0.01 ]
第二個數(shù)組:
[100]
調(diào)用 reciprocal 函數(shù):
[0]
numpy.power()
此函數(shù)將第一個輸入數(shù)組中的元素作為底數(shù),計算它與第二個輸入數(shù)組中相應(yīng)元素的冪。
import numpy as np
a = np.array([10,100,1000])
print '我們的數(shù)組是;'
print a
print '\n'
print '調(diào)用 power 函數(shù):'
print np.power(a,2)
print '\n'
print '第二個數(shù)組:'
b = np.array([1,2,3])
print b
print '\n'
print '再次調(diào)用 power 函數(shù):'
print np.power(a,b)
輸出如下:
我們的數(shù)組是;
[ 10 100 1000]
調(diào)用 power 函數(shù):
[ 100 10000 1000000]
第二個數(shù)組:
[1 2 3]
再次調(diào)用 power 函數(shù):
[ 10 10000 1000000000]
numpy.mod()
此函數(shù)返回輸入數(shù)組中相應(yīng)元素的除法余數(shù)。 函數(shù)numpy.remainder()
也產(chǎn)生相同的結(jié)果。
import numpy as np
a = np.array([10,20,30])
b = np.array([3,5,7])
print '第一個數(shù)組:'
print a
print '\n'
print '第二個數(shù)組:'
print b
print '\n'
print '調(diào)用 mod() 函數(shù):'
print np.mod(a,b)
print '\n'
print '調(diào)用 remainder() 函數(shù):'
print np.remainder(a,b)
輸出如下:
第一個數(shù)組:
[10 20 30]
第二個數(shù)組:
[3 5 7]
調(diào)用 mod() 函數(shù):
[1 0 2]
調(diào)用 remainder() 函數(shù):
[1 0 2]
以下函數(shù)用于對含有復(fù)數(shù)的數(shù)組執(zhí)行操作。
numpy.real()
返回復(fù)數(shù)類型參數(shù)的實部。
numpy.imag()
返回復(fù)數(shù)類型參數(shù)的虛部。
numpy.conj()
返回通過改變虛部的符號而獲得的共軛復(fù)數(shù)。
numpy.angle()
返回復(fù)數(shù)參數(shù)的角度。 函數(shù)的參數(shù)是degree
。 如果為true
,返回的角度以角度制來表示,否則為以弧度制來表示。
import numpy as np
a = np.array([-5.6j, 0.2j, 11. , 1+1j])
print '我們的數(shù)組是:'
print a
print '\n'
print '調(diào)用 real() 函數(shù):'
print np.real(a)
print '\n'
print '調(diào)用 imag() 函數(shù):'
print np.imag(a)
print '\n'
print '調(diào)用 conj() 函數(shù):'
print np.conj(a)
print '\n'
print '調(diào)用 angle() 函數(shù):'
print np.angle(a)
print '\n'
print '再次調(diào)用 angle() 函數(shù)(以角度制返回):'
print np.angle(a, deg = True)
輸出如下:
我們的數(shù)組是:
[ 0.-5.6j 0.+0.2j 11.+0.j 1.+1.j ]
調(diào)用 real() 函數(shù):
[ 0. 0. 11. 1.]
調(diào)用 imag() 函數(shù):
[-5.6 0.2 0. 1. ]
調(diào)用 conj() 函數(shù):
[ 0.+5.6j 0.-0.2j 11.-0.j 1.-1.j ]
調(diào)用 angle() 函數(shù):
[-1.57079633 1.57079633 0. 0.78539816]
再次調(diào)用 angle() 函數(shù)(以角度制返回):
[-90. 90. 0. 45.]