带有 NumPy loadtxt() 和 genfromtxt 的“dtype”都有哪些可用数据类型?

Posted

技术标签:

【中文标题】带有 NumPy loadtxt() 和 genfromtxt 的“dtype”都有哪些可用数据类型?【英文标题】:What are the available datatypes for 'dtype' with NumPy's loadtxt() an genfromtxt?带有 NumPy loadtxt() 和 genfromtxt 的“dtype”有哪些可用数据类型? 【发布时间】:2012-12-09 10:39:12 【问题描述】:

有哪些numpy.loadtxt 或numpy.genfromtxt 可用于导入具有不同数据类型的表数据,可用的缩写有哪些(例如,i32 表示整数)?

This post 演示了条件的使用,我很好奇是否有人会详细说明。

【问题讨论】:

docs.scipy.org/doc/numpy/reference/arrays.dtypes.html 和 docs.scipy.org/doc/numpy/reference/… 与熊猫相关的这个答案类似:***.com/a/45063514/911945 【参考方案1】:

除了np.sctypeDict,还有这些变量:

In [141]: np.typecodes
Out[141]: 
'All': '?bhilqpBHILQPefdgFDGSUVOMm',
 'AllFloat': 'efdgFDG',
 'AllInteger': 'bBhHiIlLqQpP',
 'Character': 'c',
 'Complex': 'FDG',
 'Datetime': 'Mm',
 'Float': 'efdg',
 'Integer': 'bhilqp',
 'UnsignedInteger': 'BHILQP'

In [143]: np.sctypes
Out[143]: 
'complex': [numpy.complex64, numpy.complex128, numpy.complex192],
 'float': [numpy.float16, numpy.float32, numpy.float64, numpy.float96],
 'int': [numpy.int8, numpy.int16, numpy.int32, numpy.int32, numpy.int64],
 'others': [bool, object, str, unicode, numpy.void],
 'uint': [numpy.uint8, numpy.uint16, numpy.uint32, numpy.uint32, numpy.uint64]

【讨论】:

【参考方案2】:

关于dtypes的一般信息:http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

来自http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html#arrays-scalars-built-in

在 NumPy 中,有 24 种新的基本 Python 类型来描述不同类型的标量。这些类型描述符主要基于编写 CPython 的 C 语言中可用的类型,还有几种与 Python 的类型兼容的附加类型。

而我没有意识到的是:

类似 C 的名称与字符代码相关联,如表中所示。但是,不鼓励使用字符代码。

我怀疑numpy 代码/文档库很快就会消失,所以我猜这说明了一切!

【讨论】:

+1(尽管可以想象,numpy 文档库可能会从 docs.scipy.org 移走而不会真正消失,因为 numpy top-level page 最近移走了......) @abarnert 我刚刚学到了一些新东西,同时查看了该页面 - 只是将其放入编辑中 讽刺的是,scipy.org 今天下线了【参考方案3】:

for k, v in np.sctypeDict.iteritems(): print '0:14s : 1:40s'.format(str(k), v)

Q              : <type 'numpy.uint64'>      
U              : <type 'numpy.unicode_'>
a              : <type 'numpy.string_'>

等等

【讨论】:

以上是关于带有 NumPy loadtxt() 和 genfromtxt 的“dtype”都有哪些可用数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

numpy.loadtxt()用法

numpy.loadtxt读取数据

numpy loadtxt 跳过第一行

Numpy中使用loadtxt获取单一列数据

python numpy 使用 loadtxt读取txt文件的内容,txt文件跟要执行的py文件在

使用numpy.loadtxt()总是报错ValueError: could not convert string to float: 213