我正在阅读一个源代码,它会下载zip文件并将数据读入到numpy数组中。这段代码应该能在macOS和Linux上正常运行,以下是我看到的代码片段:
def _read32(bytestream):
dt = numpy.dtype(numpy.uint32).newbyteorder('>')
return numpy.frombuffer(bytestream.read(4), dtype=dt)
这个函数在以下情境中被使用:
with gzip.open(filename) as bytestream:
magic = _read32(bytestream)
很容易看出这里发生了什么,但我对 newbyteorder('>')
的目的感到困惑。我阅读了文档,知道了字节顺序的含义,但无法理解为什么开发者要添加 newbyteorder(在我看来它并不是真正需要的)。
data = numpy.frombuffer(buf, dtype=numpy.uint8)
,这让事情有点混乱。为什么在这行代码中没有指定字节序? - emanueleuint8
只有 1 个字节长,字节序仅在多字节数据类型中才有意义。 - HeyYO