python和numpy中的資料型別比較

2021-09-13 04:10:48 字數 1550 閱讀 1201

在寫python**時,有時會用到isinstance來做型別判斷,isinstance()可以判斷兩個型別是否相同,而且相對於type()isinstance()會認為子類是一種父類型別,會考慮繼承關係。

我們經常會將輸入資料data (列表list格式) 轉為numpy格式,有時在後面對data進行型別判斷,這時就要明確numpy的預設型別了,並且要知道python中的整型和numpy中的整型的區別。這是乙個很容易出bug的地方。

a=np.array([1

,2,3

])print

('1'

,type

(a))

print

('2'

,a.dtype)

print

('3'

,isinstance

(a[0],

int)

)#判斷numpy.int64是否為python的int型別;結果為false

#numpy轉換其他整數型別

a=a.astype(np.int8)

print

('4'

,a.dtype)

print

('5'

,isinstance

(a[0],

int)

)#判斷numpy.int8是否為python的int型別;結果為false

輸出結果:

1 >

2 int64

3 false

4 int8

5 false

python中的float和np.float、np.float64都是c型別的double

a=np.array(

[1.0

,2.0

,3.0])

print

('1'

,type

(a))

print

('2'

,a.dtype)

print

('3'

,isinstance

(a[0],

float))

#判斷numpy.float64是否為python的int型別;結果為true

#numpy轉換其他浮點型別

a=a.astype(np.float32)

print

('4'

,a.dtype)

print

('5'

,isinstance

(a[0],

float))

#判斷numpy.float32是否為python的int型別;結果為false

輸出結果:

1 >

2 float64

3 true

4 float32

5 false

Python 中 NumPy 的廣播

廣播描述了 numpy 如何在算術運算期間處理具有不同形狀的陣列。為了實現形狀相容,較小的陣列仍在較大的陣列上 廣播 廣播提供了一種向量化陣列操作的方法,以便在 c 而不是 python 中進行迴圈。numpy 通常在逐個元素的基礎上對陣列對進行操作。在最簡單的情況下,兩個陣列必須具有完全相同的形狀...

Python中的Numpy矩陣

與使用陣列一樣,需要從numpy中匯入matrix或者mat模組 from numpy import matrix,mat這裡使用mat建立乙個矩陣 ss.t但是這裡的轉置並沒有改變原變數中的值,如果需要使用,需要新建立乙個變數進行賦值使用。如果需要將兩個矩陣的每個元素對應相乘時使用numpy中的m...

Python中numpy的應用

建立ndarray import numpy as np nd np.array 2,4,6,11 numpy中預設ndarray的所有元素的資料型別是相同,如果資料的型別不同,會統一為統一型別,優先順序為str float int nd array 2 4 6 11 dtype 使用np建立rou...