NumPy數(shù)組對象
NumPy中的多為數(shù)組稱為ndarray,它有兩部分組成
- 數(shù)據(jù)本身
- 描述數(shù)據(jù)的元數(shù)據(jù)
NumPy數(shù)組優(yōu)勢
- 查看數(shù)組的數(shù)據(jù)類型
In [2]: a = np.arange(5)
In [3]: a.dtype
Out[3]: dtype('int64')
- 查看數(shù)據(jù)的元素個數(shù)
In [4]: a
Out[4]: array([0, 1, 2, 3, 4])
In [5]: a.shape
Out[5]: (5,)
創(chuàng)建多維數(shù)組
- 創(chuàng)建多維數(shù)組
In [6]: m = np.array([np.arange(2),np.arange(2)])
In [7]: m
Out[7]:
array([[0, 1],
[0, 1]])
- 顯示該數(shù)組的形狀
In [8]: m.shape
Out[8]: (2, 2)
選擇Numpy數(shù)組元素
In [9]: a = np.array([[1,2],[3,4]])
In [10]: a
Out[10]:
array([[1, 2],
[3, 4]])
In [11]: a[0,0]
Out[11]: 1
In [12]: a[0,1]
Out[12]: 2
In [13]: a[1,0]
Out[13]: 3
In [14]: a[1,1]
Out[14]: 4
數(shù)組元素的下標(biāo)如下所示
[0,0] | [0,1] | ||
[1,0] | [1,1] | ||
NumPy的數(shù)值類型
類型 | 說明 |
---|---|
bool | 布爾值(值為True或False) |
inti | 長度取決于平臺的整數(shù)(通常為int)32或者int64) |
int8 | 字節(jié)類型(取值范圍-128~127) |
int16 | 整型(取值范圍-32768~32767) |
int32 | 整型(取值范圍-231~231-1) |
int64 | 整型(取值范圍-263~263-1) |
uint8 | 無符號整型(取值范圍0~255) |
uint16 | 無符號整型(取值范圍0~65535) |
uint32 | 無符號整型(取值范圍0~232-1) |
uint64 | 無符號整型(取值范圍0~264-1) |
float16 | 半精度浮點(diǎn)型:符號占用1比特,指數(shù)占用5比特,尾數(shù)占用10比特 |
float32 | 單精度浮點(diǎn)型:符號占用1比特,指數(shù)占用8比特,尾數(shù)占用23比特 |
float64或float | 雙精度浮點(diǎn)型:符號占用1比特,指數(shù)占用11比特,尾數(shù)占用52比特 |
complex64 | 復(fù)數(shù)整型,由兩個32位浮點(diǎn)數(shù)表示 |
complex128或complex | 復(fù)數(shù)整型,由兩個64位浮點(diǎn)數(shù)表示 |
- 每一種數(shù)據(jù)類型都有相應(yīng)的轉(zhuǎn)換函數(shù):
In [27]: np.float64(42) Out[27]: 42.0 In [28]: np.int8(42.0) Out[28]: 42 In [29]: np.bool(42) Out[29]: True In [31]: np.bool(0) Out[31]: False In [32]: np.bool(42.0) Out[32]: True In [33]: np.float(True) Out[33]: 1.0 In [34]: np.float(False) Out[34]: 0.0
- 許多函數(shù)都帶有一個指定數(shù)據(jù)類型的可選參數(shù)
不允許把復(fù)數(shù)類型轉(zhuǎn)化為整型,同樣的也不允許把復(fù)數(shù)轉(zhuǎn)化為浮點(diǎn)數(shù)In [36]: np.arange(7, dtype=np.uint16) Out[36]: array([0, 1, 2, 3, 4, 5, 6], dtype=uint16)
字符碼
-
*字符碼是為了與其前身Numeric向后兼容
整型 字符碼 整型 i 無符號整型 u 單精度浮點(diǎn)型 f 雙精度浮點(diǎn)型 d 布爾值 b 復(fù)數(shù)型 D 字符串 S 萬國碼(Unicode) U 空類型(void) V -
生成單精度浮點(diǎn)型
In [37]: np.arange(7, dtype='f') Out[37]: array([ 0., 1., 2., 3., 4., 5., 6.], dtype=float32)
-
創(chuàng)建負(fù)數(shù)類型的數(shù)組
In [38]: np.arange(7, dtype='D') Out[38]: array([ 0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j])
dtype構(gòu)造函數(shù)
- 使用python自帶的常規(guī)浮點(diǎn)型
In [40]: np.dtype(float) Out[40]: dtype('float64')
- 用字符碼規(guī)定單精度浮點(diǎn)數(shù)
In [41]: np.dtype('f') Out[41]: dtype('float32')
- 用字符碼規(guī)定雙精度浮點(diǎn)數(shù)
In [42]: np.dtype('d') Out[42]: dtype('float64')
- 可以向dtype構(gòu)造函數(shù)傳遞一個雙字碼。其中,第一個字符表示數(shù)據(jù)類型,第二個字符為數(shù)字,表示占用的字節(jié)數(shù)
In [43]: np.dtype('f8') Out[43]: dtype('float64')
可以通過sctypeDict.keys()函數(shù)列出數(shù)據(jù)類型的字符碼
In [44]: np.sctypeDict.keys()
Out[44]: dict_keys(['?', 0,... 'bytes', 'a'])
結(jié)束語
如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點(diǎn)個喜歡鼓勵我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~