哪里可以找到包含代表复数的'Z'的NumPy对象format字段完整说明?
你看到的Zd不属于struct模块的格式符号体系,是PEP 3118修订的缓冲区协议中定义的类型标识,用于描述内存缓冲区存储的数据类型:
- 前缀
Z是缓冲区协议专门规定的复数类型标识,代表每个复数元素由两个相同类型的浮点数组成,分别对应实部和虚部 - 后缀
d对应双精度浮点数,和struct模块中d的含义一致,对应C语言的double类型,单元素占8字节
二者组合的Zd就代表当前内存块存储的是双精度复数,单元素总大小为16字节,完全匹配你使用的NumPy默认复数类型np.complex128。
你可以用单精度复数验证对应规则:
>>> import numpy as np >>> ac_single = np.array([1+2j], dtype=np.complex64) >>> memoryview(ac_single).format 'Zf'
返回的Zf里的f就对应单精度浮点数标识。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

