Time: 2019-08-03
如果总是和数组打交道,而没有听过
memoryview
,那就太遗憾了。
用不同的方式读写同一块内存。
memoryview.cast
会将同一块内存中的内容打包为全新的memoryview
对象。
numbers = array('h', [-2, -1, 0, 1, 2])
memv = memoryview(numbers)
memv_oct = memv.cast('B')
memv_oct.tolist()
# [254, 255, 255, 255, 0, 0, 1, 0, 2, 0]
memv_oct[5] = 4
memv_oct.tolist()
# [254, 255, 255, 255, 0, 4, 1, 0, 2, 0]
numbers
# array('h', [-2, -1, 1024, 1, 2])
将位于位置5的字节赋值为4,有符号整数将变成1024、
总结
利用数组来做高级的数字处理,Numpy和Scipy是更好的工具。
END.
网友评论