当前位置: 首页 > news >正文

一周学会Pandas2 Python数据处理与分析-NumPy数据类型

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

NumPy 提供了丰富的数据类型(dtypes),主要用于高效数值计算。以下是 NumPy 的主要数据类型分类及说明:


  1. 数值类型(Numeric Types)

(1) 整数类型(Integer)

类型说明范围(有符号)范围(无符号)
int88位整数-128 到 127-
int1616位整数-32768 到 32767-
int3232位整数-2³¹ 到 2³¹-1-
int6464位整数-2⁶³ 到 2⁶³-1-
uint88位无符号整数-0 到 255
uint1616位无符号整数-0 到 65535
uint3232位无符号整数-0 到 2³²-1
uint6464位无符号整数-0 到 2⁶⁴-1

示例:

import numpy as np
​
a = np.array([1, 2, 3], dtype=np.int32)  # 32位整数
b = np.array([255, 0], dtype=np.uint8)   # 8位无符号整数

(2) 浮点类型(Float)

类型说明精度(位数)
float16半精度浮点(16位)5位指数 + 10位尾数
float32单精度浮点(32位)8位指数 + 23位尾数
float64双精度浮点(64位,默认)11位指数 + 52位尾数
float128扩展精度浮点(128位)更高精度(部分系统支持)

示例:

c = np.array([1.0, 2.5], dtype=np.float32)  # 单精度浮点
d = np.array([3.1415926535], dtype=np.float64)  # 双精度浮点

(3) 复数类型(Complex)

类型说明
complex64实部和虚部均为 float32
complex128实部和虚部均为 float64(默认)
complex256更高精度的复数(部分系统支持)

示例:

e = np.array([1 + 2j, 3 + 4j], dtype=np.complex64)
  1. 其他类型

(1) 布尔类型(Boolean)

类型说明
bool_布尔值(True/False)

示例:

f = np.array([True, False], dtype=np.bool_)

(2) 字符串类型(String)

类型说明
str_Unicode 字符串(默认)
bytes_字节字符串(ASCII)

示例:

g = np.array(["hello", "numpy"], dtype=np.str_)   # Unicode
h = np.array([b"abc", b"123"], dtype=np.bytes_)   # 字节字符串

(3) 日期时间类型(Datetime)

类型说明
datetime64日期时间(年、月、日、秒等)
timedelta64时间间隔(差值)

示例:

i = np.array(["2023-01-01", "2024-12-31"], dtype="datetime64[D]")  # 天精度
j = np.array([1, 7], dtype="timedelta64[D]")  # 时间差(天)

3. 结构化数据类型(Structured Arrays)

用于存储类似表格的数据(多个字段):

dt = np.dtype([("name", "U10"), ("age", "i4"), ("height", "f4")])
people = np.array([("Alice", 25, 1.65), ("Bob", 30, 1.80)], dtype=dt)
print(people["age"])  # 访问字段

完整代码:

import numpy as np
​
a = np.array([1, 2, 3], dtype=np.int32)  # 32位整数
b = np.array([255, 0], dtype=np.uint8)  # 8位无符号整数
print(a, b)
​
c = np.array([1.0, 2.5], dtype=np.float32)  # 单精度浮点
d = np.array([3.1415926535], dtype=np.float64)  # 双精度浮点
print(c, d)
​
e = np.array([1 + 2j, 3 + 4j], dtype=np.complex64)
print(e)
​
f = np.array([True, False], dtype=np.bool_)
print(f)
​
g = np.array(["hello", "numpy"], dtype=np.str_)  # Unicode
h = np.array([b"abc", b"123"], dtype=np.bytes_)  # 字节字符串
print(g, h)
​
i = np.array(["2023-01-01", "2024-12-31"], dtype="datetime64[D]")  # 天精度
j = np.array([1, 7], dtype="timedelta64[D]")  # 时间差(天)
print(i, j)
​
dt = np.dtype([("name", "U10"), ("age", "i4"), ("height", "f4")])
people = np.array([("Alice", 25, 1.65), ("Bob", 30, 1.80)], dtype=dt)
print(people)
print(people["age"])  # 访问字段

运行输出:

[1 2 3] [255   0]
[1.  2.5] [3.14159265]
[1.+2.j 3.+4.j]
[ True False]
['hello' 'numpy'] [b'abc' b'123']
['2023-01-01' '2024-12-31'] [1 7]
[('Alice', 25, 1.65) ('Bob', 30, 1.8 )]
[25 30]

NumPy 的数据类型比 Python 原生类型更精细,适合科学计算。选择合适的数据类型可以:

  • 节省内存(如用 int8 代替 int64

  • 提高计算效率(如 float32float64 更快)

  • 确保精度(如避免整数溢出)。

相关文章:

  • 【JavaWeb-Spring boot】学习笔记
  • 通过枚举、AOP、注解、反射填充公共字段
  • MySQL的进阶语法8(SQL优化——insert、主键、order by、group by、limit、count和update)
  • k8s pod security context 总结笔记
  • 自旋锁(C++实现)
  • js中一些便捷用法
  • 记一次表格数据排序优化(一)--排序30000条数据有多卡
  • MySQL基础 [一] - Ubuntu版本安装
  • Cribl 创建Dataset
  • NDK开发:JNI编程基础
  • 【C++】从零实现Json-Rpc框架(2)
  • 基于SpringBoot+Vue实现的二手交易市场平台功能一
  • 流影---开源网络流量分析平台(五)(成果展示)
  • 【Python学习】列表/元组等容器的常用内置函数详解
  • 【漫话机器学习系列】178.多元逻辑回归(Multinomial Logistic Regression)
  • CExercise_05_1函数_3交互式简易计算器
  • 量化交易提醒 - python发送邮件
  • OpenHarmony子系统开发 - DFX(三)
  • 华为TaurusDB、阿里PolarDB与腾讯TDSQL:信创需求下的国产数据库对比分析
  • 嵌入式硬件如何在PADS中将原理图转换为PCB详解