NumPy基礎入門學習

2021-09-07 12:13:04 字數 4108 閱讀 9899

對於習慣使用了matlab的使用者而言,學習numpy這個python工具包付出的成本應該是不大的。

numpy的基本的object是多維陣列,是乙個有同樣型別的數字等構成的一張**,能夠通過元組進行索引。本篇主要列出numpy中最經常使用的一些操作。

1,ndarray 型別的一些屬性

>>> from numpy import *

>>> a=array([[1,2,3],[4,5,6]])

>>> a

array([[1, 2, 3],

[4, 5, 6]])

>>>

以上給出了怎麼樣初始化乙個numpy 陣列。這個陣列的型別,維度,包括元素的個數,元素型別。資料等都能夠通過其對應的屬性來得到

#  元素型別    ndarray.dtype

>>> a.dtype

dtype('int64')

>>>

# 維度        ndarray.shape

>>> a.shape

(2, 3)

#包括元素的個數 ndarray.size

>>> a.size

6

2。建立自己定義大小的陣列。改變陣列的shape

預設系統型別

>>> a=zeros((3,4))

>>> a

array([[ 0., 0., 0., 0.],

[ 0., 0., 0., 0.],

[ 0., 0., 0., 0.]])

初始化資料的型別

>>> a=ones((5,4),dtype=int64)

>>> a

array([[1, 1, 1, 1],

[1, 1, 1, 1],

[1, 1, 1, 1],

[1, 1, 1, 1],

[1, 1, 1, 1]])

>>> a.dtype

dtype('int64')

改變陣列的shape               reshape函式

>>> a=arange(15)

>>> a

array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])

>>> a.reshape((5,3))

array([[ 0, 1, 2],

[ 3, 4, 5],

[ 6, 7, 8],

[ 9, 10, 11],

[12, 13, 14]])

技巧:對於reshape這個函式,能夠僅僅指定多少行,或者僅僅指定多少列。剩下的工作由這個函式提我們來做。提高操作的靈活性。

>>> a.reshape((5,:-1))

array([[ 0, 1, 2],

[ 3, 4, 5],

[ 6, 7, 8],

[ 9, 10, 11],

[12, 13, 14]])

>>> a.reshape((-1,5))

array([[ 0, 1, 2, 3, 4],

[ 5, 6, 7, 8, 9],

[10, 11, 12, 13, 14]])

3,陣列索引

1)通過指定元組來進行索引

>>> a=floor(10*random.random((5,4)))

>>> a

array([[ 4., 6., 4., 9.],

[ 4., 7., 2., 1.],

[ 4., 9., 7., 3.],

[ 5., 4., 6., 0.],

[ 4., 3., 2., 9.]])

>>> a[(1,1)]

7.0>>> a[(3,2)]

6.0

2)一次索引多個元素

索引出多行,能夠將下標存放在乙個array裡

>>> index=array([1,3,4]) #要索引1,3,4行

>>> a[index]

array([[ 4., 7., 2., 1.],

[ 5., 4., 6., 0.],

[ 4., 3., 2., 9.]])

>>> index=array([[1,2],[1,3]])

>>> b=a[index]

>>> b

array([[[ 4., 7., 2., 1.],

[ 4., 9., 7., 3.]],

[[ 4., 7., 2., 1.],

[ 5., 4., 6., 0.]]])

>>> b.shape

(2, 2, 4)

以上操作都是對一行進行索引的。那麼怎麼去索引到第幾行。第幾列呢

>>> i=array([0,1,2,3])

>>> j=array([3,2,1,0])

>>> a[i,j]

array([ 9., 2., 9., 5.])

返回的是 乙個一維矩陣。行存放在i 中。列存放在j中

如果要將返回的元素存放在2*2的矩陣中

>>> i=array([[0,1],[2,3]])

>>> j=array([[3,2],[2,1]])

>>> a[i,j]

array([[ 9., 2.],

[ 7., 4.]]

同一時候還支援 下面幾種索引方式。與matlab相似

>>> a[:,1]

array([ 6., 7., 9., 4., 3.])

>>> a[:,3]

array([ 9., 1., 3., 0., 9.])

>>> a[1,:]

array([ 4., 7., 2., 1.])

>>> a[:,1:3]

array([[ 6., 4.],

[ 7., 2.],

[ 9., 7.],

[ 4., 6.],

[ 3., 2.]])

3,矩陣算術運算

>>> a

array([[ 4., 6., 4., 9.],

[ 4., 7., 2., 1.],

[ 4., 9., 7., 3.],

[ 5., 4., 6., 0.],

[ 4., 3., 2., 9.]])

>>> a.sum()

93.0

>>> a.sum(axis=0) #行相加

array([ 21., 29., 21., 22.])

>>> a.sum(axis=1) #列相加

array([ 23., 14., 23., 15., 18.])

>>> a.min()

0.0>>> a.min(axis=0)

array([ 4., 3., 2., 0.])

>>> a.min(axis=1)

array([ 4., 1., 3., 0., 2.])

>>> a.max()

9.0>>> a.max(axis=0)

array([ 5., 9., 7., 9.])

>>> a.max(axis=1)

array([ 9., 7., 9., 6., 9.])

陣列之間算術運算

a+b; a-b

很多其它可參考:tentative numpy tutorial

numpy學習(一) numpy基礎

此文為學習 理解numpy,numpy簡單入門教程整理的學習筆記 numpy是乙個功能強大的python庫,主要用於對多維陣列執行計算。numpy這個詞 於兩個單詞 numerical和python。a np.array 0,1,2,3,4 a np.array 0,1,2,3,4 1,2,3,4,...

機器學習入門 numpy學習

numpy的基本使用 ndarray支援並行化運算 向量化運算 numpy內建了並行運算功能,當系統有多個核心時,做某種計算時,numpy會自動做平行計算 效率遠高於純python numpy底層使用c語言編寫,內部解除了gil 全域性直譯器鎖 其對陣列的操作速度不受python直譯器的限制,所以,...

NumPy入門基礎語法學習1

首先安裝好numpy以後,匯入numpy import numpy as np用如下方式建立一 個整型值列表 l list range 10 結果如下 結果如下 python 提供了幾種將資料儲存在有效的 固定型別的資料快取中的選 項。內建的陣列 array 模組 在 python 3.3 之後可用...