2016-11-14 301 views
5

dtype='f'dtype='f4'dtype='>f4'dtype'<f4'有什麼區別? 語法不在docs on types中解釋(除了'f'是'float32'的簡寫);它在records的頁面上被廣泛使用,但是>/<的含義在那裏也沒有解釋。numpy dtype中的<<符號是什麼意思?

一些實驗後,我發現,

In [13]: a = np.array([1.0], dtype='f') 
    In [15]: print(a.dtype) 
    float32 

In [16]: a = np.array([1.0], dtype='<f4') 
    In [17]: print(a.dtype) 
    float32 

In [18]: a = np.array([1.0], dtype='>f4') 
    In [19]: print(a.dtype) 
    >f4 

這讓我相信那些是不等價的,這可能是問題的解釋我正面對一個外部圖書館。

回答

4

通過查找數據類型的對象,你可以看到 '>'和 '<' 引用的數據類型

https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

的字節序10
>>> dt = np.dtype('>H') # big-endian unsigned short 
>>> dt = np.dtype('<f') # little-endian single-precision float 

f是一個單精度浮點數,在你的情況下它使用4個字節(4 x 8 = 32位)。

dtype='<f4' 

使dtype成爲32位單精度浮點數,使用little endian的字節順序。

更多關於排序可以使用維基找到 https://en.wikipedia.org/wiki/Endianness