鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ NumPy算數(shù)運算
NumPy位操作
NumPy數(shù)學(xué)算數(shù)函數(shù)
NumPy高級索引
NumPy環(huán)境安裝配置
NumPy IO文件操作
NumPy字符串函數(shù)
NumPy切片和索引
NumPy統(tǒng)計函數(shù)
NumPy矩陣庫
NumPy數(shù)組創(chuàng)建例程
NumPy線性代數(shù)
NumPy Matplotlib庫
NumPy教程
NumPy排序、搜索和計數(shù)函數(shù)
NumPy字節(jié)交換
NumPy Ndarray對象
NumPy數(shù)組操作
NumPy使用 Matplotlib 繪制直方圖
NumPy數(shù)組屬性
NumPy廣播
NumPy來自現(xiàn)有數(shù)據(jù)的數(shù)組
NumPy副本和視圖
NumPy在數(shù)組上的迭代
NumPy來自數(shù)值范圍的數(shù)組
NumPy算數(shù)運算
NumPy數(shù)據(jù)類型

NumPy算數(shù)運算

NumPy - 算數(shù)運算

用于執(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.]