使用 NumPy 从文本形式的记录列表创建 RecArray 并使用名称获取列


要从文本形式的记录列表创建 RecArray,请在 Python NumPy 中使用 **numpy.core.records.fromrecords()** 方法。名称是使用“**names**”参数设置的。字段名称,可以以 'col1, col2, col3' 形式的逗号分隔字符串指定,也可以以 ['col1', 'col2', 'col3'] 形式的字符串列表或元组指定。可以使用空列表,在这种情况下使用默认字段名称('f0'、'f1'、…)。

第一个参数是数据,同一字段中的数据可能是异构的——它们将被提升到最高数据类型。dtype 是所有数组的有效 dtype。格式、名称、标题、对齐、字节序参数、f dtype 为 None,这些参数将传递给 numpy.format_parser 以构造 dtype。如果 formats 和 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 type...
", arr1.dtype) print("
Array2 type...
", arr2.dtype) print("
Array3 type...
", arr3.dtype)

获取数组的维度:

print("
Array1 Dimensions...
", arr1.ndim) print("
Array2 Dimensions...
", arr2.ndim) print("
Array3 Dimensions...
", arr3.ndim)

要从文本形式的记录列表创建 RecArray,请在 Python NumPy 中使用 numpy.core.records.fromrecords() 方法。名称是使用“names”参数设置的:

rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3')
print("
Record Array...
",rec)

基于名称获取列:

print("
Fetching the column1...
",rec.col1) print("
Fetching the column2...
",rec.col2) print("
Fetching the column3...
",rec.col3)

示例

import numpy as np

# Create a new array using the numpy.array() method
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']])

# Display the arrays
print("Array1...
",arr1) print("Array2...
",arr2) print("Array3...
",arr3) # Get the type of the arrays print("
Array1 type...
", arr1.dtype) print("
Array2 type...
", arr2.dtype) print("
Array3 type...
", arr3.dtype) # Get the dimensions of the Arrays print("
Array1 Dimensions...
", arr1.ndim) print("
Array2 Dimensions...
", arr2.ndim) print("
Array3 Dimensions...
", arr3.ndim) # To create a recarray from a list of records in text form, use the numpy.core.records.fromrecords() method in Python Numpy # The names is set using the "names" parameter # The field names, either specified as a comma-separated string in the form 'col1, col2, col3', or as a list or tuple of strings in the form ['col1', 'col2', 'col3']. # An empty list can be used, in that case default field names (‘f0’, ‘f1’, …) are used. rec = np.core.records.fromrecords([arr1,arr2,arr3], names = 'col1, col2, col3') print("
Record Array...
",rec) # Fetching the columns based on names print("
Fetching the column1...
",rec.col1) print("
Fetching the column2...
",rec.col2) print("
Fetching the column3...
",rec.col3)

输出

Array1...
[[ 7 14 21]
[30 37 45]]
Array2...
[[11.3 18.7 24. ]
[87.5 65. 23.8]]
Array3...
[['12' 'bbb' 'john']
['5.6' '29' 'k']]

Array1 type...
int64

Array2 type...
float64

Array3 type...
<U4

Array1 Dimensions...
2

Array2 Dimensions...
2

Array3 Dimensions...
2

Record Array...
[[('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')]]

Fhing the column1...
[['7' '30']
['11.3' '87.5']
['12' '5.6']]

Fhing the column2...
[['14' '37']
['18.7' '65.0']
['bbb' '29']]

Fhing the column3...
[['21' '45']
['24.0' '23.8']
['john' 'k']]

更新于: 2022年2月10日

128 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告