Numpy 基礎(chǔ)知識(shí)
-
Numpy
的主要對(duì)象是同質(zhì)的多維數(shù)組。Numpy
中的元素放在[]
中匈辱,其中的元素通常都是數(shù)字振湾,并且是同樣的類型,由一個(gè)正整數(shù)元組進(jìn)行索引亡脸。 -
每個(gè)元素在內(nèi)存中占有同樣大小的空間押搪。在Numpy中佛南,維度被稱為
軸
。例如對(duì)于[1, 2, 1]有一個(gè)軸嵌言,并且長(zhǎng)度為3。而[[ 1., 0., 0.], [ 0., 1., 2.]]
則有兩個(gè)軸及穗,第一個(gè)軸的長(zhǎng)度為2摧茴,第二個(gè)軸的長(zhǎng)度為3。 -
Numpy
數(shù)組類的名字叫做ndarray
埂陆,經(jīng)常簡(jiǎn)稱為array
苛白。要注意將numpy.array
與標(biāo)準(zhǔn)Python
庫(kù)中的array.array
區(qū)分開,后者只處理一維數(shù)組焚虱,并且功能簡(jiǎn)單购裙。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) # np.array的定義
各參數(shù)的含義:
- object:用于生成數(shù)組的數(shù)據(jù)對(duì)象
- dtype:指定類型,可選鹃栽。
- copy:可選躏率,默認(rèn)為True,對(duì)象被復(fù)制民鼓。
- order:C語(yǔ)言風(fēng)格(按行)薇芝、FORTRAN風(fēng)格(按列)或A(任意,默認(rèn))丰嘉。
- subok:默認(rèn)情況下夯到,返回的數(shù)組被強(qiáng)制為基類數(shù)組。 如果為True饮亏,則返回子類耍贾。
- ndmin:指定返回?cái)?shù)組的最小維數(shù)
ndarray屬性
- ndarray.ndim:數(shù)組的軸數(shù)量
- ndarray.shape:數(shù)組的形狀。比如對(duì)于n行m列的矩陣路幸,其shape形狀就是(n,m)荐开。而shape元組的長(zhǎng)度則恰恰是上面的ndim值,也就是軸數(shù)劝赔。
- ndarray.size:數(shù)組中所有元素的個(gè)數(shù)誓焦。這恰好等于shape中元素的乘積。
- ndarray.dtype:數(shù)組中元素的數(shù)據(jù)類型着帽。除了標(biāo)準(zhǔn)的Python類型杂伟,Numpy還提供一些自有的類型。
- ndarray.itemsize:元素的字節(jié)大小仍翰。比如float64類型的itemsize為8(=64/8)赫粥,而complex32的itemsize為4(=32/8)。
- ndarray.data:包含數(shù)組實(shí)際元素的緩沖區(qū)予借。通常我們不需要使用這個(gè)屬性越平,因?yàn)槲覀儗⑹褂盟饕ぞ咴L問(wèn)數(shù)組中的元素频蛔。
- ndarray.flags: 數(shù)組對(duì)象的一些狀態(tài)指示或標(biāo)簽
import numpy as np # 國(guó)際慣例的導(dǎo)入方式
a = np.arange(15).reshape(3, 5) # 創(chuàng)建3行5列的數(shù)組
a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
a.shape # 數(shù)組形狀,即幾行幾列
(3, 5)
a.ndim # 數(shù)組的軸數(shù)秦叛,維度稱為軸
2
a.dtype.name # 數(shù)組中元素的數(shù)據(jù)類型
'int32'
a.size # 數(shù)組中所有元素的個(gè)數(shù)
15
type(a)
numpy.ndarray
b = np.array([1, 2, 3, 4]) # 生成一個(gè)數(shù)組晦溪,中括號(hào)的元素看成一個(gè)整體
b
array([1, 2, 3, 4])
type(b)
numpy.ndarray
c = np.array([[1, 2], [3, 4], [5, 6]]) # 注意:有兩層中括號(hào)[]
c
array([[1, 2],
[3, 4],
[5, 6]])
c.size
6