繁体   English   中英

如何为 numpy python3+ 中的 arrays 列表制作 dtype

[英]how to make a dtype for list of arrays in numpy python3+

我有一个从串行端口获取并共享的 300x57 字节数组,然后我打算将其直接解压到 numpy 数组中

所以我制作了一个 57 字节大小的 dtype

onebuffdtype = np.dtype(
        "b1, b1, f4, u4, u2, u1, f4, u4, u2, u1, f4, i4, i2, i1, f4, u4, u2, u1, f4, u4, u2, u1")

那么如果

shared_buff1.buf

是缓冲区所在的地方

buff1_np = np.ndarray((300, 57,), dtype=onebuffdtype,
                          buffer=shared_buff1.buf)

但它说

TypeError:缓冲区对于请求的数组来说太小了

数组的形状是元素的数量,而不是它包含的字节数。 如果您的元素都是 57 字节大小,那么 300x57 字节缓冲区的大小正好适合初始化大小为 300 的数组:

buff1_np = np.ndarray(300, dtype=onebuffdtype, buffer=shared_buff1.buf)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM