簡體   English   中英

numpy.genfromtxt中的dtype參數

[英]dtype argument in numpy.genfromtxt

>>> from io import StringIO
>>> import numpy as np
>>> s = StringIO("1,1.3,abcde")
>>> data = np.genfromtxt(s, dtype=[('myint','i8'),('myfloat','f8'),
... ('mystring','S5')], delimiter=",")
>>> data
array((1, 1.3, 'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', '|S5')])

我的問題與dtype參數有關。 我無法理解dtype="i8,f8,|S5"代表什么。 我可以確定出是整數, f是浮點數, s是字符串,但是i8中的8是什么? 我首先了解它的字節數,但是s5怎么可能。 我了解dtype有助於指定數據類型,以便我們可以從CSV文件中讀取數據,但有人可以對數據類型提供一些見解

i8f8的8是字節數。 有幾種不同的方法可以在numpy中表示相同的數據類型 您從np.genfromtxt中看到的字符串為緊湊格式。 前面的<>符號表示小端或大端(參見文檔 ),后跟i表示整數, f表示浮點/雙精度,以及字節數。

較長的數據類型名稱的大小以位為單位而不是以字節為單位 ,這意味着i8int64f4float32 ,依此類推。 例如:

>>> np.dtype('i8')
dtype('int64')
>>> np.dtype('f4')
dtype('float32')

默認情況下,這些都是little endian。 據我所知,如果要大字節序, np.dtype不會返回長格式:

>>> np.dtype('>c16')
dtype('>c16') 

字符串是一種特殊的數據類型,數字表示最大字符串字符數。 有關更多詳細信息,請參見此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM