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)
(b)# [0 1 2 3 4 5 6 7 8 9]
# 多於乙個維度
a=np.array([[
1,2]
,[3,
4]])
(a)#[[1 2]
# [3 4]]
# dtype 引數
import numpy as np
a = np.array([1
,2,3
], dtype =
complex
(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)
(x.shape)
(x.ndim)
#ndarray的shape有幾個數字, ndim就是多少
#(3, 3)
#2# 現在調整其大小
b = a.reshape(2,
4,3)
# b 現在擁有三個維度
(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安裝及建立...