从文本形式的记录列表创建 recarray 并根据 Numpy 中的索引获取数组
numpyserver side programmingprogramming更新于 2025/11/30 6:39:00
要从文本形式的记录列表创建 recarray,请使用 Python Numpy 中的 numpy.core.records.fromrecords() 方法。名称使用"names"参数设置。字段名称可以指定为逗号分隔的字符串(形式为 'col1, col2, col3'),也可以指定为字符串列表或元组(形式为 ['col1', 'col2', 'col3'])。可以使用空列表,在这种情况下使用默认字段名称("f0", "f1", …)。使用"dtype"参数设置数据类型。
第一个参数是同一字段中的数据可能是异构的 - 它们将被提升为最高数据类型。dtype 是所有数组的有效 dtype。格式、名称、标题、对齐、字节顺序参数,如果 dtype 为 None,这些参数将传递给 numpy.format_parser 以构造 dtype。如果格式和 dtype 均为 None,则将自动检测格式。使用元组列表而不是列表列表可加快处理速度
步骤
首先,导入所需的库 −
import numpy as np
使用 numpy.array() 方法创建一个新数组 −
arr1 = np.array([[7, 14, 21], [30, 37, 45]]) arr2 = np.array([[11.3, 18.7, 24], [87.5, 65, 23.8]]) arr3 = np.array([['12', 'bbb', 'john'], ['5.6', '29', 'k']])
显示数组 −
print("Array1...
",arr1)
print("Array2...
",arr2)
print("Array3...
",arr3)
获取数组的类型 −
print("
Array1 类型...
", arr1.dtype)
print("
Array2 类型...
", arr2.dtype)
print("
Array3 类型...
", arr3.dtype)
获取数组的维度 −
print("
Array1 维度...
", arr1.ndim)
print("
Array2 维度...
", arr2.ndim)
print("
Array3 维度...
", arr3.ndim)
要从文本形式的记录列表创建重新数组,请使用 Python Numpy 中的 numpy.core.records.fromrecords() 方法 −
rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3')
print("
记录数组...
",rec)
获取数组值 −
print("
获取数组 1...
",rec[0])
print("
获取数组 2...
",rec[1])
print("
获取数组 3...
",rec[2])
示例
import numpy as np
# 使用 numpy.array() 方法创建一个新数组
arr1 = np.array([[7, 14, 21], [30, 37, 45]])
arr2 = np.array([[11.3, 18.7, 24], [87.5, 65, 23.8]])
arr3 = np.array([['12', 'bbb', 'john'], ['5.6', '29', 'k']])
# 显示数组
print("Array1...
",arr1)
print("Array2...
",arr2)
print("Array3...
",arr3)
# 获取数组的类型
print("
Array1 类型...
", arr1.dtype)
print("
Array2 类型...
", arr2.dtype)
print("
Array3 类型...
", arr3.dtype)
# 获取数组的维度
print("
Array1 维度...
", arr1.ndim)
print("
Array2 维度...
", arr2.ndim)
print("
Array3 维度...
", arr3.ndim)
# 要从文本形式的记录列表创建重新数组,请使用 Python Numpy 中的 numpy.core.records.fromrecords() 方法
# 使用 "names" 参数设置名称
# 字段名称,可以指定为逗号分隔的字符串,形式为 'col1, col2, col3',也可以指定为字符串列表或元组,形式为 ['col1', 'col2', 'col3']。
# 可以使用空列表,在这种情况下使用默认字段名称 (‘f0’, ‘f1’, …)。
# 使用 "dtype" 参数设置数据类型
rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3')
print("
记录数组...
",rec)
print("
获取数组 1...
",rec[0])
print("
获取数组 2...
",rec[1])
print("
获取数组 3...
",rec[2])
输出
数组 1...
[[ 7 14 21]
[30 37 45]]
数组 2...
[[11.3 18.7 24. ]
[87.5 65. 23.8]]
数组 3...
[['12' 'bbb' 'john']
['5.6' '29' 'k']]
Array1 类型...
int64
Array2 类型...
float64
Array3 类型...
<U4
Array1 维度...
2
Array2 维度...
2
Array3 维度...
2
记录数组...
[[('7', '14', '21') ('30', '37', '45')]
[('11.3', '18.7', '24.0') ('87.5', '65.0', '23.8')]
[('12', 'bbb', 'john') ('5.6', '29', 'k')]]
获取数组 1...
[('7', '14', '21') ('30', '37', '45')]
获取数组 2...
[('11.3', '18.7', '24.0') ('87.5', '65.0', '23.8')]
获取数组 3...
[('12', 'bbb', 'john') ('5.6', '29', 'k')]

