天天看點

NumPy快餐教程(2) - 多元數組進階NumPy快餐教程(2) - 多元數組進階

上一講我們介紹了ndarray的形狀變化和生成方法,這一節我們繼續讨論多元數組的使用方法。

NumPy中使用[]方括号來通路元素。如果是一維數組,就用下标數字,例如a[1],如果是多元數組,就在方括号中使用元組tuple,例如a[(2,3,4)]

例:

用一個值采用方括号下标方式引用,而如果想要引用多個值的話,可以考慮做一個切片。比如s[1:3]就是由s[1]和s[2]組成的清單:

多元的切片也是同理,比如我們從一個3x3x3的立方體中切出一個2x2x2的小立方體:

請注意,切片的文法不用元組,直接在方括号裡切就好了。

另外,切片可以使用負數做下标,-1就是右數第一個元素。最左和最右都可以不寫,比如從1到最右,可以寫成a[1:]

在前面的學習中,我們并不在意資料類型,一樣也可以使用多元數組。但是,有了類型之後,數組可以更友善和更快速的操作。

我們前面所學習的生成數組的方法,其實都可以預設帶一個dtype參數。

類型值常用的有int32, int64, uint32, uint64, float32, float64, complex64, complex128等。因為NumPy是個數學庫,精确的類型對于提高計算速度是很有益的。

資料隻有可以計算才有價值。我們學會了生成數組,通路數組,下一步就是如何對數組進行計算。

NumPy提供了大量的針對數組進行運算的函數,比如X是一個數組,np.sin(X)可以對數組中每一個元素都進行sin運算。

這是一行的,多行的也照樣管用,我們看個例子:

數組之間支援加減乘除,乘方,取餘。

例:給一個數組的每個元素都乘以2

兩個數組之間做加法:

不但算術運算可以做,也可以針對整個數組做比較大小運算。

除了對每個元素進行計算,我們還可以對這些元素進行彙總,比如求和sum,求平均值mean等。

除了前面所講的多元數組,NumPy還提供了矩陣類matrix. matrix的預設運算都是矩陣運算。

例:

矩陣的逆陣,就可以直接用X**-1來表示。