numpy的基本使用 一

2021-09-27 03:20:12 字數 4191 閱讀 9494

numpy(numerical python)提供了python對多維陣列物件的支援:ndarray,具有向量運算能力,快速、節省空間。numpy支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫。

numpy支援比python更多種類的數值型別。numpy數值是dtype(資料型別)物件的例項,每個物件具有唯一的特徵。

ndarray:n維陣列物件(矩陣),所有元素必須是相同型別。

ndarray屬性:ndim屬性,表示維度個數;shape屬性,表示各維度大小;dtype屬性,表示資料型別。

ndarray 內部由以下內容組成:

陣列建立函式

建立乙個 ndarray 只需呼叫 numpy 的array 函式即可:

numpy.array(object, dtype = none, copy = true, order = none, subok = false, ndmin = 0)

引數說明:

# 等間隔數字的陣列

b = np.arange(10)

;print

(b)# [0 1 2 3 4 5 6 7 8 9]

# 多於乙個維度

a=np.array([[

1,2]

,[3,

4]])

print

(a)#[[1 2]

# [3 4]]

# dtype 引數

import numpy as np

a = np.array([1

,2,3

], dtype =

complex

)print

(a)#[1.+0.j 2.+0.j 3.+0.j]

numpy 支援的資料型別比 python 內建的型別要多很多,基本上可以和 c 語言的資料型別對應上,其中部分型別對應為 python 內建的型別。

dtype 物件是使用以下語法構造的:numpy.dtype(object, align, copy)

import numpy as np

# 使用標量型別

dt = np.dtype(np.int32)

print

(dt)

#32import numpy as np

# int8, int16, int32, int64 四種資料型別可以使用字串 'i1', 'i2','i4','i8' 代替

dt = np.dtype(

'i4'

)print

(dt)

#int32

import numpy as np

# 位元組順序標註

dt = np.dtype(

')print

(dt)

#int32

結構化資料型別的使用,型別欄位和對應的實際型別將被建立。

# 首先建立結構化資料型別

import numpy as np

dt = np.dtype([(

'age'

,np.int8)])

print

(dt)

#[('age', 'i1')]

# 將資料型別應用於 ndarray 物件

import numpy as np

dt = np.dtype([(

'age'

,np.int8)])

a = np.array([(

10,),

(20,)

,(30,

)], dtype = dt)

print

(a)#[(10,) (20,) (30,)]

# 型別欄位名可以用於訪問實際的 age 列

import numpy as np

dt = np.dtype([(

'age'

,np.int8)])

a = np.array([(

10,),

(20,)

,(30,

)], dtype = dt)

print

(a['age'])

# [10 20 30]

乙個結構化資料型別 student,包含字串字段 name,整數字段 age,及浮點字段 marks,並將這個 dtype 應用到 ndarray 物件。

import numpy as np

student = np.dtype([(

'name'

,'s20'),

('age'

,'i1'),

('marks'

,'f4')]

)print

(student)

# [('name', 's20'), ('age', 'i1'), ('marks', 'import numpy as np

student = np.dtype([(

'name'

,'s20'),

('age'

,'i1'),

('marks'

,'f4')]

) a = np.array([(

'abc',21

,50),

('xyz',18

,75)]

, dtype = student)

print

(a)#[(b'abc', 21, 50.) (b'xyz', 18, 75.)]

每個內建型別都有乙個唯一定義它的字元**,如下:

numpy 陣列的維數稱為秩(rank),一維陣列的秩為 1,二維陣列的秩為 2,以此類推。

在 numpy中,每乙個線性的陣列稱為是乙個軸(axis),也就是維度(dimensions)。比如說,二維陣列相當於是兩個一維陣列,其中第乙個一維陣列中每個元素又是乙個一維陣列。所以一維陣列就是 numpy 中的軸(axis),第乙個軸相當於是底層陣列,第二個軸是底層陣列裡的陣列。而軸的數量——秩,就是陣列的維數。

很多時候可以宣告 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。

numpy 的陣列中比較重要 ndarray 物件屬性有:

# (3, 2) 三行兩列

data =[[

1,2,

3],[

2,4,

6],[

7,61,

15]]x = np.array(data)

print

(x.shape)

print

(x.ndim)

#ndarray的shape有幾個數字, ndim就是多少

#(3, 3)

#2# 現在調整其大小

b = a.reshape(2,

4,3)

# b 現在擁有三個維度

print

(b.ndim)

#3

numpy基本使用

參考文獻 官方幫助文件 numpy v1.12 manual csdn numpy之四 高階索引和索引技巧 from numpy import definit array print 建立一維陣列 a arange 5 print a print a.dtype 顯示陣列中的資料型別 print a...

機器學習 Numpy的基本使用

numpy介紹 numpy是乙個開源的python科學計算庫,用於快速處理任意維度的陣列。numpy支援常見的陣列和矩陣操作,對於同樣的數值計算任務,使用numpy比之間使用python要簡潔的多。numpy使用ndarray物件來處理多維陣列,該物件是乙個快速而靈活的大資料容器。ndarray介紹...

資料分析 numpy的基本使用

numpy是高效能科學計算和資料分析的基礎包。它是pandas等其他各種工具的基礎。numpy的主要功能 python中操作方式 也可以通過安裝anaconda軟體操作,裡面包含 numpy,pandas以及matplotlib多個庫 本片文章是在anaconda3中執行!anaconda安裝及建立...