You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不关注字节大小判断numpy dtype是否为整数类型?

如何不关注字节大小判断NumPy dtype是否为整数类型

当然有快速简便的方法!不需要纠结具体是32位还是64位整数,NumPy本身就提供了直接的判断方式,下面给你两种常用的方案:

方法1:使用np.issubdtype()

这是最推荐的方式,它会检查目标dtype是否是指定类型的子类。NumPy里的np.integer是所有整数类型(包括有符号的int8/16/32/64,无符号的uint8/16/32/64等)的父类,所以不管字节大小,只要是整数类型都会返回True。

示例代码:

import numpy as np

val = np.array([[2], [3], [4]]).astype(np.int32)
print(np.issubdtype(val.dtype, np.integer))  # 输出: True

# 如果只想判断有符号整数,可以用np.signedinteger
print(np.issubdtype(val.dtype, np.signedinteger))  # 输出: True

# 判断无符号整数则用np.unsignedinteger
uint_val = np.array([1,2,3]).astype(np.uint64)
print(np.issubdtype(uint_val.dtype, np.unsignedinteger))  # 输出: True

方法2:检查dtype的kind属性

每个NumPy dtype都有一个kind属性,用来表示数据类型的大类:

  • 'i' 代表有符号整数
  • 'u' 代表无符号整数

直接判断这个属性是否在对应的范围内即可:

示例代码:

import numpy as np

val = np.array([[2], [3], [4]]).astype(np.int32)
# 判断所有整数类型(有符号+无符号)
print(val.dtype.kind in ('i', 'u'))  # 输出: True

# 只判断有符号整数
print(val.dtype.kind == 'i')  # 输出: True

这两种方法都很高效,完全不需要关心字节数,按需选择就行~

内容的提问来源于stack exchange,提问作者quanty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:18:35