在寫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...