基本運算 NumPy

2021-07-26 04:26:20 字數 2856 閱讀 6608

陣列的算術運算是按元素的。新的陣列被建立並且被結果填充。

>>> 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方法...