在 Numpy 中从二进制数据创建记录数组

numpyserver side programmingprogramming

要从二进制数据创建记录数组,请使用 Python Numpy 中的 numpy.core.records.fromstring()  方法。我们对二进制数据使用了 tobytes() 方法。

第一个参数是数据字符串,即二进制数据的缓冲区。该函数返回数据字符串中数据的记录数组视图。如果数据字符串是只读的,则它将是只读的。offset 参数是缓冲区中开始读取的位置。参数formats、names、titles、aligned、byteorder,如果dtype为None,这些参数会传递给numpy.format_parser构造dtype。

步骤

首先,导入所需的库 −

import numpy as np

设置数组类型 −

my_type = [('Team', (np.str_, 10)), ('Points', np.float64),('Rank', np.int32)]

显示数组 −

print("记录数组类型...
",my_type)

使用 numpy.array() 方法 − 创建数组

arr = np.array([('AUS', 115, 5), ('NZ', 125, 3),('IND', 150, 1)], dtype=my_type)

显示数组 −

print("
数组...
",arr)

要从二进制数据创建记录数组,请使用 numpy.core.records.fromstring() 方法。我们 已使用 tobytes() 方法对二进制数据进行减法;

rec = np.core.records.fromstring(arr.tobytes(), dtype=my_type)
print("
记录数组...
",rec)

示例

import numpy as np

# 设置数组类型
my_type = [('Team', (np.str_, 10)), ('Points', np.float64),('Rank', np.int32)]

# 显示类型
print("记录数组类型...
",my_type) # 创建数组使用 numpy.array() 方法 arr = np.array([('AUS', 115, 5), ('NZ', 125, 3),('IND', 150, 1)], dtype=my_type) # 显示数组 print("
数组...
",arr) # 要从二进制数据创建记录数组,请使用 Python Numpy 中的 numpy.core.records.fromstring() 方法 # 我们对二进制数据使用了 tobytes() 方法 rec = np.core.records.fromstring(arr.tobytes(), dtype=my_type) print("
记录数组...
",rec)

输出

记录数组类型...
[('Team', (<class 'numpy.str_'>, 10)), ('Points', <class 'numpy.float64'>), ('Rank', <class 'numpy.int32'>)]

数组...
[('AUS', 115., 5) ('NZ', 125., 3) ('IND', 150., 1)]

记录数组...
[('AUS', 115., 5) ('NZ', 125., 3) ('IND', 150., 1)]

相关文章