Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将字节对象分配给NumPy数组切片?_Python_Arrays_Numpy_Byte - Fatal编程技术网

Python 如何将字节对象分配给NumPy数组切片?

Python 如何将字节对象分配给NumPy数组切片?,python,arrays,numpy,byte,Python,Arrays,Numpy,Byte,我想使用NumPy数组来高效地操作大字节数组。不幸的是,将bytes对象分配给NumPy数组的一部分并不像我预期的那样工作: 导入结构 将numpy作为np导入 数组=np.zero(10,dtype=np.uint8) #将65535存储到前两个字节中 数组[0:2]=struct.pack(“您可以创建一个引用基础缓冲区的数组。这应该避免创建副本 array[:2] = memoryview(struct.pack('<H', 65535)) array # array([255, 2

我想使用NumPy数组来高效地操作大字节数组。不幸的是,将
bytes
对象分配给NumPy数组的一部分并不像我预期的那样工作:

导入结构
将numpy作为np导入
数组=np.zero(10,dtype=np.uint8)
#将65535存储到前两个字节中
数组[0:2]=struct.pack(“您可以创建一个引用基础缓冲区的数组。这应该避免创建副本

array[:2] = memoryview(struct.pack('<H', 65535))
array
# array([255, 255,   0,   0,   0,   0,   0,   0,   0,   0], dtype=uint8)

array[:2]=memoryview(struct.pack(‘根据
bytes
bytearray
都支持缓冲协议。所以肯定还有其他区别,可能是
numpy
实现本身?@ph4nt0m这里只是推测一下,我想原因是如果你传递一个字节字符串v/s a bytearray,numpy会尝试根据一种字符编码方案。而在字节数组中,字节是分开解释的。我猜。
array[0:2] = bytearray(struct.pack('<H', 65535)) # works
array[:2] = memoryview(struct.pack('<H', 65535))
array
# array([255, 255,   0,   0,   0,   0,   0,   0,   0,   0], dtype=uint8)