NumPy學習2之陣列的基本屬性

2021-09-25 08:33:27 字數 3445 閱讀 6589

numpy中,陣列主要是用來表示資料,型別由intfloat,除此之外還有表示邏輯的bool型別、表示複數的complex型別和表示字串的string_型別等。

當建立乙個numpy陣列時,如果沒有指定元素的資料型別,numpy會根據當前資料和系統自動指定陣列的資料型別,可以通過陣列的dtype屬性查詢當前陣列的資料型別。

arr1 = np.array([1

,2,3

,4])

arr1.dtype

dtype(『int32』)

arr2 = np.array(

[0.2

,0.4,1

])arr2.dtype

dtype(『float64』)

另外,我們也可以在建立陣列的時候,通過方法的引數dtype指定陣列的資料型別。

arr3 = np.array([1

,2,3

], dtype=np.float32)

arr3.dtype

dtype(『float32』)

numpy中的資料型別如表所示:

資料型別**

說明int8 uint8i1 u18位(1個位元組)有符號 無符號整型

int16 uint16i2 u216位(2個位元組)有符號 無符號整型

int32 uint32i4 u44位(4個位元組)有符號 無符號整型

int64 uint64i8 u864位(8個位元組)有符號 無符號整型

float16 float32 float64 float128f2 f4/f f8/d f16/g半精度 單精度 雙精度 擴充套件精度浮點數

complex64 complex128 complex256c8 c16 c32分別用兩個32位 64位 128位浮點數表示的複數

bool

儲存true false值的布林型別

string_s固定長度的字串型別,每個字元1個位元組,如建立含有10個字元的字串,應使用s10

objectopython物件型別

unicode_u固定長度的unicode型別(位元組數由平台決定),類似string_型別,如u10

表中的型別**是一種簡寫形式,在指定型別時可以以字串的形式出現(個人覺得沒有必要使用,原始的np.int32這種寫法就狠易於理解)。

arr4 = np.array(

[1.0

,2.0

,3.0

], dtype=

"f4"

)arr4.dtype

dtype(『float32』)

numpy中,允許不同資料型別的陣列進行轉換,但是需要注意的是不同型別之間的轉換可能會導致資料精度的丟失,比如float->int;另外所有非零資料轉換為bool型別都是true,零值資料轉換為false;不能進行型別之間轉換的程式會報錯。資料型別的轉換使用astype方法。

arr5 = arr4.astype(np.

bool

)arr5

array([ true, true, true])

arr6 = arr2.astype(np.int32)

arr6

array([0, 0, 1])

當陣列中的元素都是字串型別的數字時,也可以轉換為數字(遇到的比較少)

numeric_strings = np.array(

["1.25"

,"-9.6"

,"42"

], dtype=np.string_)

numeric_strings.astype(np.float32)

array([ 1.25, -9.6 , 42. ], dtype=float32)

陣列按照維度可以分為一維、二維和高維陣列,通常使用較多的一維的向量,二維和三維的陣列,使用ndim屬性可以得到陣列的維度資訊。除了維度之外,陣列還有描述每乙個維度長度的形狀資訊,使用shape可以得到陣列的形狀資訊。

arr1 = np.array([6

,7.5,8

,0,1

])print

(arr1.ndim)

print

(arr1.shape)

1

(5,)

arr2 = np.array([[

2,2.5,0]

,[1,

4,5]

])print

(arr2.ndim)

print

(arr2.shape)

2

(2, 3)

其實所謂的高維陣列(包括二維)都是一維陣列通過層層巢狀得來的。

屬性含義

t轉置,與self.transpose()相同,如果維度小於2返回self

size陣列中元素個數

itemsize陣列中單個元素的位元組長度

imag返回陣列的虛部

real返回陣列的實部

nbytes陣列中所有元素的位元組長度

陣列的基本屬性

預設已 為間隔開,如果換成其他的則 空格或文字或其他東西 把陣列的所有元素放入乙個字串,通過乙個的分隔符進行分隔 把陣列中的所有元素轉換為乙個字串 var energy fruits.join energy輸出結果 刪除並返回陣列的最後乙個元素 移除最後乙個陣列元素 fruits.pop fruit...

NumPy學習2 建立陣列

1.使用array建立陣列 b array 2,3,4 print b print b.dtype 2.把序列轉化為陣列b array 1.5,2,3 4,5,6 print b 3.函式function建立乙個全是0的陣列,函式ones建立乙個全1的陣列,函式empty建立乙個內容隨機並且依賴與記...

Numpy陣列的基本運算

import numpy as np對應元素進行四則運算 a np.arange 3,8 b np.arange 1,6 print a a print b b print a b a b print a b a b print a b a b print a b a b a 3 4 5 6 7 b...