python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > NumPy中24种不同类型的标量

NumPy中的24种不同类型的标量详解

作者:峡谷的小鱼

本段描述了NumPy中的多种标量类型及其用途,包括布尔、整数、浮点数等复浮点数等Python对象类型等灵活的数据类型,并强调这些类型为数组标量提供了与nd ndarray API兼容的API

在NumPy中,提供了多种新的基本Python类型来描述不同类型的标量。

numpy.generic 是所有 numpy 标量类型的基类,是为了使得数组标量可以和ndarray数组对象保持相同的 API。

一、内置标量类型

numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型。

下表列举了常用 NumPy 基本类型。

1. NumPy的默认数据类型是float_

Numpy的默认数据类型是float_

2. 布尔(Booleans)

类型备注字符代码
bool_
bool8
布尔型数据类型(True 或者 False),兼容Python bool‘?’

3. 整数(Integers)

类型备注字符代码
byte兼容C char‘b’
short兼容C 短’h’
longlong兼容C 长‘q’
intc与 C 的 int 类型一样,一般是 int32 或 int 64,兼容C int‘i’
int_兼容Python int‘l’
intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)‘p’
int8字节 8位
int16整数 16位
int32整数 32位
int64整数 64位

4. 无符号整数(Unsigned integers)

类型备注字符代码
ubyte兼容C 无符号字符‘B’
ushort兼容C 无符号短’H’
ulonglong兼容C 无符号长‘Q’
uintc与 C 的 无符号 int 类型一样,兼容C unsigned int‘I’
uint_兼容Python int‘L’
uintp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)‘P’
uint8无符号整数 8位
uint16无符号整数 16位
uint32无符号整数 32位
uint64无符号整数 64位

5. 浮点数字(Floating-point numbers)

类型备注字符代码
half‘e’
single兼容: C浮点数’f’
double兼容:C双精度浮点数
float_64位,兼容:Python float‘d’
longfloat兼容:C长浮点数‘g’
float1616位
float3232位
float6464位
float9696位
float128128位

6. 复浮点数(Complex floating-point numbers)

类型备注字符代码
csingle‘F’
complex_兼容:Python复数'D"
clongfloat‘G’
complex64两个32位浮点数
complex128两个64位浮点数
complex192两个96位浮点数
complex256两个128位浮点数

7. Python对象

类型备注字符代码
object_Python对象‘O’

注意:

实际存储在对象数组中的数据( 即 具有dtype的数组object_)是对Python对象的引用,而不是对象本身。因此,对象数组的行为更像普通的Python lists,因为它们的内容不必是相同的Python类型。

对象类型也是特殊的,因为包含object_项的数组 不会object_在项访问时返回对象,而是返回数组项引用的实际对象。

8.灵活的数据类型

类型备注字符代码
bytes兼容:Python字节‘S’
unicode兼容:Python Unicode/str‘U’
void‘V’

这些数据类型没有预定义的大小,在描述数据时可以设定不同的长度。

二、属性方法

数组标量类型的属性和方法对应于数组的属性,实现API的兼容。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文