从 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)]
广告