陣列的算術運算是按元素的。新的陣列被建立並且被結果填充。
>>> a = array( [20,30,40,50] )
>>> b = arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*sin(a)
array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854])
>>> a<35
array([true, true, false, false], dtype=bool)
不像許多矩陣語言,numpy中的乘法運算子*
指示按元素計算,矩陣乘法可以使用dot
函式或建立矩陣物件實現(參見教程中的矩陣章節)
>>> a = array( [[1,1],
... [0,1]] )
>>> b = array( [[2,0],
... [3,4]] )
>>> a*b # elementwise product
array([[2, 0],
[0, 4]])
>>> dot(a,b) # matrix product
array([[5, 4],
[3, 4]])
有些操作符像+=
和*=
被用來更改已存在陣列而不建立乙個新的陣列。
>>> a = ones((2,3), dtype=int)
>>> b = random.random((2,3))
>>> a *= 3
>>> a
array([[3, 3, 3],
[3, 3, 3]])
>>> b += a
>>> b
array([[ 3.69092703, 3.8324276 , 3.0114541 ],
[ 3.18679111, 3.3039349 , 3.37600289]])
>>> a += b # b is converted to integer type
>>> a
array([[6, 6, 6],
[6, 6, 6]])
當運算的是不同型別的陣列時,結果陣列和更普遍和精確的已知(這種行為叫做upcast)。
>>> a = ones(3, dtype=int32)
>>> b = linspace(0,pi,3)
>>> b.dtype.name
'float64'
>>> c = a+b
>>> c
array([ 1. , 2.57079633, 4.14159265])
>>> c.dtype.name
'float64'
>>> d = exp(c*1j)
>>> d
array([ 0.54030231+0.84147098j, -0.84147098+0.54030231j,
-0.54030231-0.84147098j])
>>> d.dtype.name
'complex128' 許多非陣列運算,如計算陣列所有元素之和,被作為ndarray類的方法實現
>>> a = random.random((2,3))
>>> a
array([[ 0.6903007 , 0.39168346, 0.16524769],
[ 0.48819875, 0.77188505, 0.94792155]])
>>> a.sum()
3.4552372100521485
>>> a.min()
0.16524768654743593
>>> a.max()
0.9479215542670073
這些運算預設應用到陣列好像它就是乙個數字組成的列表,無關陣列的形狀。然而,指定axis
引數你可以吧運算應用到陣列指定的軸上:
>>> b = arange(12).reshape(3,4)
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>
>>> b.sum(axis=0) # sum of each column
array([12, 15, 18, 21])
>>>
>>> b.min(axis=1) # min of each row
array([0, 4, 8])
>>>
>>> b.cumsum(axis=1) # cumulative sum along each row
array([[ 0, 1, 3, 6],
[ 4, 9, 15, 22],
[ 8, 17, 27, 38]])
NumPy 基本運算
在原文基礎上適當精簡並更正少量原作者的筆誤 基本運算 1.陣列的算術運算是按元素的。新的陣列被建立並且被結果填充 a array 20,30,40,50 b arange 4 b array 0,1,2,3 c a b c array 20,29,38,47 b 2 x.2 array 0,1,4,...
Numpy陣列的基本運算
import numpy as np對應元素進行四則運算 a np.arange 3,8 b np.arange 1,6 print a a print b b print a b a b print a b a b print a b a b print a b a b a 3 4 5 6 7 b...
利用numpy庫實現基本矩陣運算
一 建立矩陣 numpy庫中有兩種建立矩陣的方法,兩種方法產生的矩陣型別有所不同。第一種方法是matrix方法,產生的是普通矩陣 import numpy as np 在idle下直接呼叫numpy庫 a np.matrix 1,2 3,4 5,6 產生乙個3 2的矩陣a而另一種方法為array方法...