gpt4 book ai didi

python - 打包 numpy 数组的更好方法?

转载 作者:行者123 更新时间:2023-11-28 21:14:44 27 4
gpt4 key购买 nike

我需要用 struct.pack 打包一个 numpy 二维数组,我正在寻找一种可以批量执行此操作的方法。我试过:

X = numpy.array([[1,2,3],[4,5,6]])
b = struct.pack('=%sf' % X.size, *X)

但这行不通。它提示:

struct.error: pack expected 6 items for packing (got 2)

有没有更好的方法来打包 NumPy 数组而不是遍历每个元素?

最佳答案

如果你有一个 numpy 数组,你的数据已经打包在内存中,你不需要使用 struct:

>>> a = np.arange(1, 7)
>>> struct.pack('=6f', *a)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@\x00\x00\xa0@\x00\x00\xc0@'

>>> a.astype('f').tostring()
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@\x00\x00\xa0@\x00\x00\xc0@'

如果您的数组是多维的,.tostring 默认采用扁平 View :

>>> a = np.arange(1, 7).reshape(2, 3)
>>> a.astype('f').tostring()
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@\x00\x00\xa0@\x00\x00\xc0@'

关于python - 打包 numpy 数组的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31307143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com