在numpy
中,陣列主要是用來表示資料,型別由int
和float
,除此之外還有表示邏輯的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 uint8
i1 u1
8位(1個位元組)有符號 無符號整型
int16 uint16
i2 u2
16位(2個位元組)有符號 無符號整型
int32 uint32
i4 u4
4位(4個位元組)有符號 無符號整型
int64 uint64
i8 u8
64位(8個位元組)有符號 無符號整型
float16 float32 float64 float128
f2 f4/f f8/d f16/g
半精度 單精度 雙精度 擴充套件精度浮點數
complex64 complex128 complex256
c8 c16 c32
分別用兩個32位 64位 128位浮點數表示的複數
bool
—
儲存true false
值的布林型別
string_
s
固定長度的字串型別,每個字元1個位元組,如建立含有10個字元的字串,應使用s10
object
o
python
物件型別
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...