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


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

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

步骤

首先,导入所需的库 −

import numpy as np

设置数组类型 −

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

输出数组 −

print("Record Array types...
",my_type)

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

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

输出数组 −

print("
Array...
",arr)

若要从二进制数据创建记录数组,请使用 numpy.core.records.fromstring() 方法。我们已经使用 tobytes() 方法用于二进制数据 −

rec = np.core.records.fromstring(arr.tobytes(), dtype=my_type)
print("
Record Array...
",rec)

示例

import numpy as np

# Set the array type
my_type = [('Team', (np.str_, 10)), ('Points', np.float64),('Rank', np.int32)]

# Display the type
print("Record Array types...
",my_type) # Create an array using the numpy.array() method arr = np.array([('AUS', 115, 5), ('NZ', 125, 3),('IND', 150, 1)], dtype=my_type) # Display the array print("
Array...
",arr) # To create a record array from binary data, use the numpy.core.records.fromstring() method in Python Numpy # We have used the tobytes() method for binary data rec = np.core.records.fromstring(arr.tobytes(), dtype=my_type) print("
Record Array...
",rec)

输出

Record Array types...
[('Team', (<class 'numpy.str_'>, 10)), ('Points', <class 'numpy.float64'>), ('Rank', <class 'numpy.int32'>)]

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

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

更新时间:10-2-2022

501 次浏览

开启你的职业生涯

完成课程即可获得认证

开始学习
广告